
enum ProductsActionType בשם ביחיד, גם אם הוא מתאר פעולות על רשימה.AddProduct, UpdateProduct, DeleteProduct, ופעולה נוספת שמכניסה ל-Redux את כל המוצרים שירדו מהשרת, SetAllProducts (אפשר גם DownloadProducts או SaveProducts). פעולה כמו ClearProducts לא מגדירים כי האפליקציה לא צריכה אותה.AddProduct ו-AddEmployee יקבלו שניהם 0, ו-Redux תפעיל פעולות של שניהם.AddProduct = "AddProduct". עדיין עובדים איתו כ-enum, אבל מאחורי הקלעים כל ערך ייחודי. אותו דבר ב-enum של העובדים: UpdateEmployee, DeleteEmployee ו-SetAllEmployees.הטקסט המלא של הדקות הראשונות בהרצאה «רידקס - יצירת Action Types» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו מגיעים לפיצ'ר הבא שאנחנו צריכים לגלם פה בתשתית של רידאקס, והפיצ'ר הזה זה האקשן טייפ. אקשן טייפ, אם אתם זוכרים, זה בעצם סדרת הפעולות שאפשר לבצע על המוצרים.
האמת שכל הקובץ הזה זה מוצרים, אז זה ברור שזה פרודקטס. אמרנו שזה יכול להיות סדרה של מחרוזות, וזה יכול להיות אינם. אני יותר אוהב להגדיר את זה כאינם, אז בואו נייצר אינם.
Action Type, האמת שזה של המוצרים, אז זה Products Action Type. אינם נהוג שהוא יהיה ביחיד, שהשם שלו יהיה ביחיד, אפילו שהוא מכיל רשימה של פריטים, כי תמיד מתייחסים רק לפריט אחד.
ומה שיש לנו פה זה בעצם אילו פעולות אנחנו יכולים לעשות על המידע הזה. איזה פעולות האפליקציה כולה עושה או יכולה לעשות או רוצה לעשות על המידע. מה שאנחנו רוצים לעשות זה פעולה אחת, זה בוא נניח להוסיף מוצר Add Product.
פעולה אחרת יכולה להיות לעדכן מוצר. יש לנו פה טופס כזה שמעדכן מוצר, אבל אנחנו רוצים to update product. פעולה אחרת יכולה להיות to delete product. אולי יש לנו פעולה שאומרת לנקות clear products.
תנקה לי את כל המוצרים, למרות שאין לנו פעולה כזאת, אז אם אין, אני לא עושה אותה. אבל יש פעולה אחת שבעצם שמה את כל המוצרים, הורידה אותם מהשרת ורוצה להכניס אותם ל-redax.
בואו נגדיר שהפעולה הזאת נקראת Set All Products. אפשר להגיד Download Products, Save Products, לא משנה. אני כרגע רואה שיש לי פה בעצם את כל הפעולות שהאפליקציה הזאת שבנינו יכולה לבצע על המוצרים שנמצאים ברמת ה-State של כל האפליקציה.
עכשיו יש שתי בעיות שאנחנו צריכים לפתור עם הדבר הזה. מה שאנחנו רואים פה זה אינאם. מה ה-Value שיושב מאחורי הקלעים עבור כל אחד מהקבועים האלה?
ב-enum by default ה-value הוא מספר זה יהיה 0 זה יהיה 1 זה יהיה 2 זה יהיה 3. זה שה-enum הוא מספר לא מזיק ל-enum אבל הוא מזיק ל-redux.
למה? כאשר אנחנו בונים סטייטים כי יש לנו פה בעצם את הסטייט של כל המוצרים הקובץ הזה עם התשתית של כל המוצרים בהמשך יהיה לנו פה עוד ניהול סטייט אחר לדוגמה הסטייט של עובדים ועוד ניהול סטייט אולי של הלקוחות או היוזרים או לא משנה מה.
אז לכל אחד מהם יהיה אינאם. זאת אומרת שהקבוע הזה יהיה אפס, אבל גם באינאם שאחראי על עובדים, ושימו לב הוא לא יהיה בקובץ הזה, הוא יהיה בקובץ אחר, אני רק בעצם רושם מה יהיה בקובץ אחר, Employees Action, אז יהיה לנו פה אינאם של Add Employee ו-Update Employee ו-Delete Employee ו-Set All Employees זה
יהיה בקובץ אחר שקשור לעובדים. כאשר אנחנו שולחים פקודה לביצוע ל-Redux