Reactjs 如何正确更新我的redux状态?

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

我面临一个问题,我是Redux新手,我只是在玩它,所以我有一个问题,我创建了一个数据json文件,我在我的reducer中从中获取数据,一切正常,这是我的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.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){…}