
ProductList מביאים בקומפוננטה את המוצרים מהשרת (ב-componentDidMount), ורוצים לשמור אותם גם ב-Redux, כדי שגם קומפוננטות אחרות יוכלו לקרוא אותם.store וקוראים ל-store.dispatch.setAllProductsAction, שמקבלת את כל המוצרים ומחזירה action מסוג SetAllProducts.store.dispatch(setAllProductsAction(products)), כש-products הוא response.data שהגיע מהשרת. המוצרים נשמרים גם ב-state המקומי וגם ב-Redux.newState.products ב-reducer, וכל המוצרים מופיעים. אחרי הבדיקה מוחקים את ה-console.log.any.npm start.dispatch, וההרצאה הבאה מראה איך לקרוא אותו בחזרה.הטקסט המלא של הדקות הראשונות בהרצאה «רידקס - Dispatching Data to the Store» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אחרי שסיימנו לבנות את כל התשתית של רידאקס והייתה לנו פה הרבה כתיבה, אנחנו רוצים להשתמש עם התשתית. אנחנו משתמשים עם התשתית הזאת בכל מקום שאנחנו צריכים, בכל קומפוננטה שאנחנו צריכים, ובעצם אנחנו יכולים לעשות אחת מארבע פעולות מרכזיות כמו שראינו.
אנחנו יכולים לשלוח מידע לתוך הגלובל סטייט הזה, אנחנו יכולים לקרוא מידע מהגלובל סטייט הזה, אנחנו יכולים להאזין לשינויים וכמובן להפסיק את ההאזנה.
אנחנו רוצים לראות איך מבצעים את כל אחת מהפעולות האלה. אז נתחיל עם שליחת מידע. יש לנו פה את רשימת המוצרים כאן והדבר הראשון שאנחנו רוצים לעשות זה לשלוח את המוצרים לתוך Redux.
אז אם אנחנו מסתכלים רגע על הקומפוננטה הזאת של המוצרים אנחנו רואים יש לנו פה product list ובקומפוננט did mount אנחנו בעצם רוצים לגלוש לשרת להביא את רשימת המוצרים ולהציג אותם בתוך הקומפוננטה.
בינתיים ניתן לו להתחיל לרוץ כי אני רואה שהוא לא רץ לי npm start go ונדליק את northwind שיהיה לנו פה את ה-backend מעולה ואנחנו אנחנו רוצים פשוט מאוד ברגע שקיבלנו את המוצרים אלינו, אנחנו רוצים גם להכניס אותם ל-Global State של Redux, לכאן Product State,
בכדי שגם אנחנו נוכל לקרוא אותם וגם קומפוננטות אחרות יוכלו לקרוא אותם. אוקיי, זאת אומרת שאנחנו צריכים לעשות את זה בדיוק.
איך שקיבלנו את המוצרים, אני רוצה להעביר אותם ל-Redux. דרך אגב, אנחנו רואים שיש לנו פה את השגיאה הזאת, זה בגלל שמגרסה מסוימת צריך להגדיר כאן Any.
ואז זה בייסיקלי פותר את הבעיה, אני כמובן אשנה את זה בכל מקום. אז איך אנחנו שולחים את המוצרים לרידאקס? זה מאוד פשוט, אנחנו צריכים לגשת לסטור שלנו, פה, הנה היא, נקודה dispatch, ואנחנו רוצים לשלוח אקשן מסוג products