Reactjs 如何正确更新我的redux状态?
我面临一个问题,我是Redux新手,我只是在玩它,所以我有一个问题,我创建了一个数据json文件,我在我的reducer中从中获取数据,一切正常,这是我的reducer:Reactjs 如何正确更新我的redux状态?,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我面临一个问题,我是Redux新手,我只是在玩它,所以我有一个问题,我创建了一个数据json文件,我在我的reducer中从中获取数据,一切正常,这是我的reducer: import update from "immutability-helper"; import data from "../../../../data"; export default function notificationsReducer(state, action) { switch (action.type
import update from "immutability-helper";
import data from "../../../../data";
export default function notificationsReducer(state, action) {
switch (action.type) {
case "NOTIFICATIONS_EDIT_TO_FOLLOW":
return update(state, {
[action.id]: {
follwing: { $set: false }
}
});
break;
case "NOTIFICATIONS_EDIT_TO_UNFOLLOW":
return [];
break;
default:
return data.notifications;
}
}
如您所见,在默认部分中,我返回data.notifications,这当然会导致一个问题,因为json文件中的数据不会更改,状态会更改
当我在我的组件上工作并单击“跟随”和“取消跟随”并填充时,一切看起来都很好,但当我在组件之外的其他位置单击时,其他操作被调度(其他用于不同目的),默认部分再次执行,因此当我再次打开通知时,我所做的所有更改都消失了
这是我的问题,如果需要我的任何解释,请提问,我将编辑我的问题
任何帮助都将不胜感激 从评论中重述: 在默认情况下(对于所有减速器),您需要返回减速器的当前状态,以便不相关的操作不会干扰其值:
default:
return state;
您还必须(如果需要)设置减速机的初始值,在本例中,来自数据JSON文件的通知:
export default function notificationsReducer(state = data, action) {...}
那么您是说在
默认值中:
情况下您只想保留现有状态?而不是重置为初始的数据。通知
值?然后你应该返回状态
而不是返回数据。通知代码>在默认设置中:
案例OK这是另一个问题,比如当你刷新页面或其他东西时,它从JSON加载初始状态,新的通知现在消失了?嗯,这真的很奇怪,隐藏/显示组件不应该影响Redux存储,无论呈现什么,它都会持续存在。您能否展示如何构建存储并将其传递给提供者,以及隐藏容器时发生的情况。容器的隐藏不应该对这个reducer的值有任何影响。现在,实际上这是合乎逻辑的,因为hide and show click中有一个动作,但是这个动作改变了一些与通知不同的东西,所以我想当我启动这个动作时,我所有的reducer都会听它,对于my notifications Reducer,分派的操作类型与my notification actions types上的操作类型不同,因此它会转到defaultright,但您需要将数据添加到state参数中作为默认值,如:导出默认函数notificationsReducer(state=data,action){…}