שאלה בהעברת נתונים בprops -ריאקט

זה השם שלי...

משתמש רשום
יש לי טבלה שמכילה נתונים מסויימים
וכשאני לוחצת על ID מתוך הטבלה אני רוצה להגיע לדף מסויים
לפי הID,
עשיתי את זה בדרך הזו וקיבלתי בפרופס את המשתנה(בצורה כזו{ID})
ואני לא מצליחה לקבל את הערך...
אשמח לעזרה!!
JavaScript:
<Link
      to={{
        pathname: `/manage`,
        ID: item.id,
      }}
    >
      {item.id}
    </Link>

קוד:
const Search = ({ ID }) => {


return (
<div data-testid="CaseSearch">
  <Emp ID={ID} />
</div>
); };
 

java

משתמש סופר מקצוען
מנוי פרימיום
הנדסת תוכנה
זה בreact-router-dom?
אם כן - אני חושבת שיש לך שגיאה בצורה שבה את שולחת את הid
תסתכלי בתיעוד:
אחרי שאת מעבירה את זה כמו שכתוב בתיעוד, אני מציעה לך לקבל את כל הprops ולבדוק אם יש שם את הערך,
כי יכול להיות שהוא יעבור תחת אוביקט אב נוסף.
 

java

משתמש סופר מקצוען
מנוי פרימיום
הנדסת תוכנה
איזה מהם?
ניסיתי כמה דרכים ולא הסתדר לי:(
לא יוצא לי לעבוד עם לינק בד״כ כי אני בונה את זה בצורה של router,
אבל הייתי מנסה את הstate או אפילו את הsearch:
JavaScript:
<Link
  to={{
    pathname: "/courses",
    search: "?sort=name",
    state: { fromDashboard: true }
  }}
/>
 

זה השם שלי...

משתמש רשום
העניין הוא שאני לא רוצה שיראו בURL למעלה את הID...
אלא להעביר את מה שהמשתמש בחר בפרופס לקומפ ההיא..
 

s976

משתמש סופר מקצוען
הנדסת תוכנה
D I G I T A L
לא מכיר את הנושא, אבל מתוך התיעוד - זה לא תקין לרשום ID כ-key של to
זה כל מה שאפשר לרשום שם
1625686319387.png

לעצם שאלתך. קצת קשה לענות אליה בלי לדעת מה מבנה הקישור שאמור להתקבל.
 

זה השם שלי...

משתמש רשום
איך אני משתמשת ב:
state: { fromDashboard: true }
מה הפרמטרים שאני שמה ואיך אני מקבלת את זה בקומפ' השניה?
פשוט לא ממש הבנתי...
תודה!!!
 

זה השם שלי...

משתמש רשום
לעצם שאלתך. קצת קשה לענות אליה בלי לדעת מה מבנה הקישור שאמור להתקבל.
אני רוצה לעבור לקומפ' אחרת-
כשאני לוחצת על הקישור- אני רוצה להעביר לקומפ' את הערך...
לא מכיר את הנושא, אבל מתוך התיעוד - זה לא תקין לרשום ID כ-key של to
לא כ"כ הבנתי מה זה משה מה אני מעבירה בתוך הפרופס...
 

java

משתמש סופר מקצוען
מנוי פרימיום
הנדסת תוכנה
איך אני משתמשת ב:
state: { fromDashboard: true }
מה הפרמטרים שאני שמה ואיך אני מקבלת את זה בקומפ' השניה?
פשוט לא ממש הבנתי...
תודה!!!
שולחת כ:
state: { DI: 11111 }
מקבלת:
כאמור לא התעסקתי עם זה אבל תדפיסי את props כולו ותראי.
יכול להיות שזה ישר תחת props ויכול להיות שתחת props.navigation.state.id
או במבנה דומה אחר.
 

java

משתמש סופר מקצוען
מנוי פרימיום
הנדסת תוכנה

ctrl c

משתמש מקצוען
מנוי פרימיום
עיצוב גרפי
הנדסת תוכנה
עריכה והפקת סרטים
השליפה בתוך הקומפוננטה אליה את עוברת היא בצורה הזו:
קוד:
props.location.state.ID
 

זה השם שלי...

משתמש רשום
כלומר ככה:
כי אני גם רוצה לקבל את זה בקומפ' כפרופס
וגם להעביר הלאה לקומפ אחרת...
JavaScript:
const Search = ({ ID }) => {


return (
<div data-testid="CaseSearch">
  <Emp ID={
props.location.state.ID
} />
</div>
); };
 

java

משתמש סופר מקצוען
מנוי פרימיום
הנדסת תוכנה
כלומר ככה:
כי אני גם רוצה לקבל את זה בקומפ' כפרופס
וגם להעביר הלאה לקומפ אחרת...
JavaScript:
const Search = ({ ID }) => {


return (
<div data-testid="CaseSearch">
  <Emp ID={
props.location.state.ID
} />
</div>
); };
כמעט.
במקום
קוד:
const Search = ({ ID }) => {
תשלפי את:
קוד:
const Search = (props) => {
אפשר גם:
קוד:
const Search = ({location:{state:{ ID }}}) => {
ואז
קוד:
<Emp ID={ID}

אבל זה כבר הרבה פחות קריא.

עוד הערה קטנה.
ממליצה לך לשנות את הID לid (בכל המקומות כמובן.)
זה יותר מקובל.
 

זה השם שלי...

משתמש רשום
יותר טוב ככה?
JavaScript:
<Link
  to={{
    pathname: "/courses",
    state: { ID id }
  }}
/>

ואז:
JavaScript:
const Search = (props) => {
ןלאחר מכן:

JavaScript:
const Search = (props) => {
<Emp ID={{location:{state:{ id }}}}
 

java

משתמש סופר מקצוען
מנוי פרימיום
הנדסת תוכנה
האמת שלא...
שימי לב שערבבת את 2 ההצעות.
 

זה השם שלי...

משתמש רשום
עשיתי ככה:
JavaScript:
const CaseSearch = ({
  location: {
    state: { ID },
  },
}) => {
  return (
    <div data-testid="CaseSearch">
      <EmployeeCase ID={ID} />
    </div>
  );
};

וככה:
JavaScript:
<Link
          to={{
            pathname: `/case manage`,
            state: { ID: item.m_ID },
          }}
        >

ואני מקבלת שגיאה:
שהוא לא יכול לקרא את הID כי הוא לא נמצא...
אשמח לעזרה...
דחוף...
תודה!!!
 

java

משתמש סופר מקצוען
מנוי פרימיום
הנדסת תוכנה

זה השם שלי...

משתמש רשום
כנראה לא כי הוא לא נמצא אלא כי אבא שלו לא נמצא.
נסי לקבל ב CaseSearch את (props) ולהדפיס את prop לפני הreturn.
מה יש בו?

Failed to compile
src\Pages\CaseSearch\CaseSearchForm\CaseSearch.js
Line 14:15: 'prpos' is not defined no-undef

Search for the keywords to learn more about each error.
 

java

משתמש סופר מקצוען
מנוי פרימיום
הנדסת תוכנה
Failed to compile
src\Pages\CaseSearch\CaseSearchForm\CaseSearch.js
Line 14:15: 'prpos' is not defined no-undef

Search for the keywords to learn more about each error.
תפסת אותו בפונצקיה?
JavaScript:
const CaseSearch = (props) => {
    console.log("props", props)
  return (
    <div data-testid="CaseSearch"/>  );
};
 

אולי מעניין אותך גם...

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק קיט ק'

קמה קָרָאתִי בְכָל לֵב עֲנֵנִי יְהוָה חֻקֶּיךָ אֶצֹּרָה:קמו קְרָאתִיךָ הוֹשִׁיעֵנִי וְאֶשְׁמְרָה עֵדֹתֶיךָ:קמז קִדַּמְתִּי בַנֶּשֶׁף וָאֲשַׁוֵּעָה (לדבריך) לִדְבָרְךָ יִחָלְתִּי:קמח קִדְּמוּ עֵינַי אַשְׁמֻרוֹת לָשִׂיחַ בְּאִמְרָתֶךָ:קמט קוֹלִי שִׁמְעָה כְחַסְדֶּךָ יְהוָה כְּמִשְׁפָּטֶךָ חַיֵּנִי:קנ קָרְבוּ רֹדְפֵי זִמָּה מִתּוֹרָתְךָ רָחָקוּ:קנא קָרוֹב אַתָּה יְהוָה וְכָל מִצְוֹתֶיךָ אֱמֶת:קנב קֶדֶם יָדַעְתִּי מֵעֵדֹתֶיךָ כִּי לְעוֹלָם יְסַדְתָּם:
נקרא  7  פעמים

לוח מודעות

למעלה