在 redux 中将动作从顶级 reducer 传递到深层祖先的替代方法
Alternative to passing down action from the top reducer to deep ancestor in redux
如果我有一个大状态,相当深,这是否意味着我必须从顶部一直将动作传递给子减速器?因为似乎所有的动作都是全局的。
让我解释一下。假设我有一个深度为 10 个减速器的结构。然后最深的 reducer 有一个动作 'ADD_WHATEVER'。这是否意味着在其他 9 个减速器中我必须处理并将动作传递给子减速器? 9次?
是否有替代方法?
我的意思是除了避免使用 10 级深度结构之外,这只是一个极端的例子。我觉得我在这里理解不正确。我希望有另一种方法。
就像在 deep child 中定义动作,然后让 redux 弄清楚它需要重新创建所有父对象,因为它发生了变异。
您可以使用 combineReducers
来分隔减速器。但这并不能真正处理深层结构。
您的问题实际上与您的设计有关。深层结构更难维护和推理。你不应该依赖它们,总有更好的方法来构建你的对象模型,而不是深入。
甚至还有像 normalizr 这样的插件,可以在您的 API 返回深层结构时帮助解除嵌套。
我建议考虑重构您的结构。
如果我有一个大状态,相当深,这是否意味着我必须从顶部一直将动作传递给子减速器?因为似乎所有的动作都是全局的。
让我解释一下。假设我有一个深度为 10 个减速器的结构。然后最深的 reducer 有一个动作 'ADD_WHATEVER'。这是否意味着在其他 9 个减速器中我必须处理并将动作传递给子减速器? 9次?
是否有替代方法?
我的意思是除了避免使用 10 级深度结构之外,这只是一个极端的例子。我觉得我在这里理解不正确。我希望有另一种方法。
就像在 deep child 中定义动作,然后让 redux 弄清楚它需要重新创建所有父对象,因为它发生了变异。
您可以使用 combineReducers
来分隔减速器。但这并不能真正处理深层结构。
您的问题实际上与您的设计有关。深层结构更难维护和推理。你不应该依赖它们,总有更好的方法来构建你的对象模型,而不是深入。
甚至还有像 normalizr 这样的插件,可以在您的 API 返回深层结构时帮助解除嵌套。
我建议考虑重构您的结构。