我遇到了一个问题,我是Redux的新手,我只是在玩它,所以我有一个问题,我创建了一个数据json文件,我从我的reducer中获取了数据,一切正常很好,这是我的减速器:
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.notififications,这当然会引起问题,因为json文件中的数据不会更改,状态也会更改。
当我在组件上工作并单击“跟随”和“取消跟随”并填充所有内容时,一切看起来都很好,但是当我在组件外部的其他位置单击时,将分派其他操作(其他目的不同的操作)和默认部件再次执行,因此当我再次打开通知时,所做的所有更改都消失了。
那是我的问题,如果需要我的任何解释,请问一下,我会编辑我的问题。
任何帮助将不胜感激。
答案 0 :(得分:2)
从评论中删除:
在默认情况下(对于所有减速器),您需要返回减速器的当前状态,以使不相关的动作不会干扰其值:
default:
return state;
还(如果需要)还必须设置reducer的初始值,在这种情况下,来自数据JSON文件的通知:
export default function notificationsReducer(state = data, action) {...}