توضیحات

در این جلسه به بخش اول افزودن به سبد خرید در پروژه سبد خرید از دوره آموزش ری اکت (React.js) پروژه محور میپردازیم.


javascript جاوااسکریپت react ری اکت

مدرس دوره علی شیخ
مدت دوره 16:08:35
تعداد ویدیو 106

وضعیت دوره : کامل شده
قیمت دوره : 399,000 379,000 تومان

نظرات ارزشمند شما:

برای ارسال نظر ابتدا باید وارد سایت شوید

  • البته من این موضوع رو از chatgbt پرسیدم گفت که زمانی که یک store هست و reducer ها combind شدن باید حتما یک لیستی از تایپ اکشن ها داشته باشید تا یونیک باشه نام اکشن تایپ ها تا از اختلال جلوگیری بشه

    حالا شما هم امتحان کنید وقتی دوتا نام اکشن تایپ تکراری و یکسان میزارید ارور دریافت میکنید چون useDispatch دیگه نمیتونه تشخیص بده

  • باسلام و احترام
    تشکر از آموزش عالی

    یک سوال ذهنم رو درگیر کرده

    ما در این قسمت دوتا تابع رو به صورت dispatch ارسال میکنیم به reducer خودشون

    dispatch(getProduct())
    dispatch(addToCart(product))


    خب هر کدوم این ها باید به reducer خوشون ارسال بشن.

    حالا useDispatch چجوری تشخیص میده که من منظورم کدوم reducer هست ؟

    اگر بگیم هر دوتا reducer رو چک میکنه و میبینه که action مال کدوم reducer هست که نمیشه چون ممکنه دو reducer با دو action یک سان وجود داشته باشه
    مثلا دو reducer که هرکدومشون ADD_TO_CART رو دارن

    برای من این عجیب هست که چطور برای useDispatch هیچی تعریف نمیکنیم و میفهمه منظورمون کدوم reducer بوده که باید به تابع رو به action اون reducer ارسال کنه !؟

    • سلام وقت بخیر.
      شما دارید export میکنید از یک فایل و نمیدونید دوتا اسم مانند هم را از یک فایل export کنید.

    • تشکر از پاسخ شما

      منطورم اسم خوده توابع نیست
      که getProduct() یا addToCart() باشه

      منظورم اینه که شما فرض کنید 10-reducer رو ما combind میکنیم

      حالا هر 10 تا reducer نام توابع مختلفی دارن که export هم شدن تا اینجا اوکیه

      ولی ما برای این 10 توابع که هر کدام کار منحصر به فردی انجام میدن عمدتا برای امتحان نام همه اکشن تایپ ها رو یا حتی فقط نام دوتا از اکشن تایپ ها رو TEST_DISPATCH یا هر چیزی دیگه میزاریم

      اینجاست که بعد از صدا زدن useDispatch دقیقا برنامه با اختلال مواجه میشه

      سوال کلی رو بهتره اینطور بپرسم وقتی توی Redux از یک store استفاده میکنیم باید نام تمام actionType ها یونیک و منحصر به فرد باشه دقت کنید نام اکشن منظورم مثلا ADD_TO_CART هست یا GET_PRODUCT
      بهتر بخوام بگم اینه اگر یک پروزه داریم با یک store که داری 100 ، Reducer است فقط باید یدونه نام اکشن تایپ GET_PRODUCT در این صد تا reducer باید باشه

      چون کار هوک useDispatch به اینصورته که ببینه اکشن تایپ ارسالی با کدام یک از reducer های combind شده مطابقت داره اون وقت اون reducer رو سویچ میزنه ولی وقتی ببینه اکشن تایپ ارسالی دو reducer یکسان هست ارور میده چون نمیفهمه من منظورم کدوم reducer هست

      پس باید نام تمام اکشن تایپ های پروزه ای که فقط یک store داره باید یونیک و غیر تکراری باشه ؟

    • ببینید این موضوعی که میفرماید را تست نکردم.
      اما فایل های action و actionType و reducer هر store جدا هست و جداگانه export و import میشوند.

    • آیا پروزه ها به طور معمولا چندین فایل createStore وجود داره؟ یا معمولا در پروزه ها فقط یک createStore وجود داره ؟

    • مثال که زده شده توی دوره که ما یک createStore داریم حالا یا یک reducer یا با combineReducers چندین reducer میگیره
      حتما نگاهی به داکیومنت ها هم داشته باشید.