React Redux - 我可以让mapStateToProps只占用部分状态吗?

Ski*_*erm 13 javascript reactjs redux

我想制作可以插入任何react-redux应用程序的可重用模块.理想情况下,我的模块在顶层有一个容器组件,操作和reducer(然后是容器下面的任何表示组件).我希望模块只能处理自己应用程序状态的一部分,理想情况下不必了解应用程序状态的其余部分(因此它是真正的模块化).

Reducers只能在部分状态下工作(使用combineReducers),所以我很高兴.但是,对于容器组件,mapStateToProps似乎总是处于应用程序的完整状态.

如果mapStateToProps只接受我在模块中处理的相同"状态切片"(就像reducer一样),我会喜欢它.这样我的模块就会真正模块化.这可能吗?我想我可以把状态的那一部分传递给这个组件的道具(所以我可以使用mapStateToProps的第二个参数,ownProps),但我不确定这是否具有相同的效果.

mar*_*son 10

这实际上是一个复杂的话题.因为Redux是一个单一的全局存储,所以完全封装,完全可重用的即插即用逻辑集的想法确实变得相当困难.特别是,虽然reducer逻辑可以相当通用并且不知道它在哪里,但是选择器函数需要知道树中的哪个位置才能找到该数据.

你的问题的具体答案是"不,mapState总是给出完整的状态树".

我确实有许多相关资源的链接,这可能对您的情况有所帮助: