目前有个情景: 嵌套很深的子组件(展示型组件),需要触发的action(比如说路由跳转),想避免层层传递相关的action creater, 或dispatcher方法。 所以想这么做:
将redux的store实例设为全局对象即global.store = store这样,然后在任何地方任何时间都可以store.dispatch().
等于不再使用react-redux的mapDispatcherToProps方法了。
这么干会有问题或坑么?
天蓬老师2017-05-19 10:22:14
这样明显不符合redux 设计初衷了,任何组件都可以通过全局的store 去修改状态了。建议还是在action触发放在 root组件, 至于深层组件,可以通过事件通知到 root组件,再有组件触发 action. 其次组件嵌套层级一般是不建议超过3级以上的,可以去考虑下是否真的需要使用父子组件的形式,是否可以由兄弟组件替代部分。