זה נושא דיון מלווה לערך המקורי ב- https://www.tocode.co.il/bundles/react/lessons/multiplecomponents-lab
זה נושא דיון מלווה לערך המקורי ב- https://www.tocode.co.il/bundles/react/lessons/multiplecomponents-lab
הפתרונות שלי:
- https://codepen.io/itamardavidyan/pen/OBQzyX
- https://codepen.io/itamardavidyan/pen/gBvvmv
- https://codepen.io/itamardavidyan/pen/zmRmeK
(ב-2 ו-3 יש לי בעיה שלא הצלחתי לפתור [אשמח לעזרתכם] - כאשר מוחקים רשומה מרשימת הקניות הקלט של מספר היחידות שקנינו יורד לבא אחריו וכך הלאה בכל הרשומות. לא הצלחתי להבין מה מקור הבעיה. תודה לעוזרים.)
הי,
התשובה לבעיה של 2 ו-3 בפרק ״עבודה עם רשימות״:
https://www.tocode.co.il/bundles/react/lessons/lists
נסה לצפות בו שוב וספר כאן אחרי שתמצא מה היתה הבעיה והפיתרון
- הבעיה הייתה שריאקט לא זיהה את השינוי ברשימות כאשר מחקתי פריט מהרשימה
- הפתרון לכך היה להגדיר key לכל פריט ברשימה וכך ריקאט יזהה את השינוי
תודה
ואני אחדד-
שדות ה input שלך הם Uncontrolled, כלומר לא מוגדר להם value. זה אומר מבחינת ריאקט שה value של השדה לא משפיע על הזהות שלו ואפשר להשתמש בשדה שכתוב בו 2 במקום שדה שכתוב בו 0, או במילים אחרות שהשדה input שכתוב בו 2 זהה לשדה input שכתוב בו 0.
לכן אם לפני ה render היו שלושה שדות input ואחרי ה render ירדנו ל-2 אז זה לא משנה איזה שדה מוחקים. ההבדל היחיד ביניהם הוא ה value אבל ריאקט לא מסתכל על זה.
אפשרות אחת לתיקון היא לקשור את הערך בשדה באמצעות הגדרת value נפרד לכל אחת מהתיבות. האפשרות היותר קלה היא להגדיר הבדל אחר בין השדות האלה - וזה התפקיד של key. באמצעות ערכי key שונים ריאקט מבין ששתי התיבות לא זהות.