با سلام خدمت استاد سوری
پس از 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;
}
}
توصیه میکنم که جلسات اولیه در مورد redux رو دوباره یک مروری بکنی چون که اونجا کامل تر این فرآیند که به چه صورتی state ذخیره میشه گفته شده
به صورت کلی state رو ریداکس نگهداری میکنه اصلا هدف از redux همین که state رو نگهداری بکن
در واقع ما در reducer مشخص میکنیم که انتظار داریم چه تغییراتی در این state ایجاد بشه
سلام
اگر توجه کرده باشی در این مثال ۲ تا reducer داریم که با combineReducers اونها ترکیب کردیم!الان این visibilityFilter یک reducer هست و تفاوتی با حالت های قبلی نداره و هر چیزی رو که return بکنیم تغییرات اون در state اعمال میشه و دقیقا همین مورد انجا شده و فیلتر به تنهایی داره برگشت داده میشه و در state تغییرات اعمال میشه
اگر در App.js هم توجه بکنی این کد دقیقا داره فیلتر رو از state دریافت میکنه
const filter = useSelector((state) => state.visibilityFilter)
اگر جایی از این پروسه رو ابهام داره لطفا اعلام بکن که اون بخش رو بازم بیشتر توضیح بدم
چیزی که فهمیدم خود ریداکس یه جا داخل کتابخونش استیت هایی که ما داخل ردیوسر ها برگشت میدیم و ذخیره میکنه برای همین ما جایی ذخیره نمیکنیم ین استیت ها رو
درسته؟