javascript - 根据另一个 reducer 的状态更新一个 reducer 的状态

标签 javascript reactjs redux react-redux

我在 reducer 中的状态如下所示:

此状态处理当前用户的选择。

const selection = {
  timespan: "-3660",
  customTimespan: false,
  pathIds: [''],
  source: undefined,
  direction: 0,
  appClassIds: []
};

我在另一个 reducer 中有另一个状态,它有一个项目 appClasses 列表,用户可以在树上打开或关闭这些项目。

状态是appClasses。

问题是,当用户选择某些内容时,我会更新 appClasses 状态,但我还必须根据 appClasses 的新状态更新 Selection.appClassIds。

我的问题是如何根据另一个 reducer 的状态更新 reducer 的状态?或者我是否必须将这些状态合并为一个状态?

类似于:

const initialState = {
appClasses = [],
selection: {
  timespan: "-3660",
  customTimespan: false,
  pathIds: [''],
  source: undefined,
  direction: 0,
  appClassIds: []
 }
};

最佳答案

你可以这样做:

function a(state, action) { }
function b(state, action, a) { } // depends on a's state

function something(state = {}, action) {
  let a = a(state.a, action);
  let b = b(state.b, action, a); // note: b depends on a for computation
  return { a, b };
}

干杯:)

关于javascript - 根据另一个 reducer 的状态更新一个 reducer 的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41880082/

相关文章:

reactjs - 使用 Jest 对 ReactJS 组件中的异步渲染进行单元测试

javascript - 为什么在有 componentDidUpdate 时使用 getDerivedStateFromProps?

reactjs - Redux Form Handle提交数据为空

javascript - 如何调用两个函数onClick()react/redux

javascript - 编写一个纯函数来更新 map 中的深场

javascript - 为每个列表元素生成不同的、随机颜色的 DIV

javascript - 使用两个不同的表和 Sequelize 一个接一个地运行查询(序列)

javascript - 设计集合,如何去规范化

javascript - jQuery 表单输入到数组中不起作用

javascript - ReactJS 无法读取未定义的属性 'bind'