【发布时间】:2017-01-27 02:17:06
【问题描述】:
我在减速器中有一个状态,看起来像这样:
此状态处理当前用户的选择。
const selection = {
timespan: "-3660",
customTimespan: false,
pathIds: [''],
source: undefined,
direction: 0,
appClassIds: []
};
我在另一个 reducer 中有另一个 state,它有一个 appClasses 项目列表,用户可以在树上打开或关闭这些项目。
状态是 appClasses。
问题是,当用户选择某些内容时,我会更新 appClasses 状态,但我还必须根据 appClasses 的新状态更新 selection.appClassIds。
我的问题是如何根据另一个减速器的状态更新减速器的状态?还是我必须将这些状态合并为一个状态?
类似:
const initialState = {
appClasses = [],
selection: {
timespan: "-3660",
customTimespan: false,
pathIds: [''],
source: undefined,
direction: 0,
appClassIds: []
}
};
【问题讨论】:
-
确认 - reducer 本质上是无状态的 - 就像...它们是定义上的纯函数并且不维护任何状态。您是在问:“我如何在我的 redux 应用程序中处理横切关注点?”
-
嗯,是的,正如我所说,我有两个减速器,一个取决于另一个的状态。
-
请参阅有关该主题的 Redux 常见问题解答条目,地址为 redux.js.org/docs/faq/Reducers.html#reducers-share-state。
标签: javascript reactjs redux react-redux