تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ علیرضا بابایی
filter بعد از برگشت کجا ذخیره شد؟
مجتبی سوری حل شده توسط مجتبی سوری

با سلام خدمت استاد سوری

پس از dispatch بعد از اینکه action.filter برگشت داده شد در کجا این filter دخیره شد؟

const visibilityFilter = (state = 'SHOW_ALL', action) => {
  switch (action.type) {
    case 'SET_VISIBILITY_FILTER':
      return action.filter
    default:
      return state
  }
}

چون انگار باید مثل todo  ها ذخیره میشده که دوباره در کد زیر استفاده بشه

const getVisibleTodos = (todos, filter) => {
  switch (filter) {
    case 'SHOW_ALL':
      return todos
    case 'COMPLETED':
      return todos.filter(todo => todo.completed)
    case 'PENDING':
      return todos.filter(todo => !todo.completed)
    default:
      break;
  }
}

سلام

اگر توجه کرده باشی در این مثال ۲ تا reducer داریم که با combineReducers اونها ترکیب کردیم!الان این visibilityFilter یک reducer هست و تفاوتی با حالت‌های قبلی نداره و هر چیزی رو که return بکنیم تغییرات اون در state اعمال میشه و دقیقا همین مورد انجا شده و فیلتر به تنهایی داره برگشت داده میشه و در state تغییرات اعمال میشه

اگر در App.js هم توجه بکنی این کد دقیقا داره فیلتر رو از state دریافت میکنه

const filter = useSelector((state) => state.visibilityFilter)

اگر جایی از این پروسه رو ابهام داره لطفا اعلام بکن که اون بخش رو بازم بیشتر توضیح بدم

مجتبی سوری ۱۵ شهریور ۱۴۰۰، ۱۹:۳۸

چیزی که فهمیدم خود ریداکس یه جا داخل کتابخونش استیت هایی که ما داخل ردیوسر‌ها برگشت میدیم و ذخیره میکنه برای همین ما جایی ذخیره نمیکنیم ین استیت‌ها رو 

درسته؟

علیرضا بابایی ۱۶ شهریور ۱۴۰۰، ۰۲:۳۸

توصیه میکنم که جلسات اولیه در مورد redux رو دوباره یک مروری بکنی چون که اونجا کامل‌تر این فرآیند که به چه صورتی state ذخیره میشه گفته شده

 

به صورت کلی state رو ریداکس نگهداری میکنه اصلا هدف از redux همین که state رو نگهداری بکن 

در واقع ما در reducer مشخص میکنیم که انتظار داریم چه تغییراتی در این state ایجاد بشه

بهترین پاسخ
مجتبی سوری ۱۶ شهریور ۱۴۰۰، ۰۵:۳۱