为了账号安全,请及时绑定邮箱和手机立即绑定

请问react redux 怎么访问其他model的state?

请问react redux 怎么访问其他model的state?

湖上湖 2019-07-03 16:07:12
react redux 怎么访问其他model的state
查看完整描述

4 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

1、先说redux的作用
代理top-level single data flow,从最外层的container下发数据流触发dumb components的更新。
2、题主的业务场景是否可以由redux解决
答案肯定是可以的,但不一定合理。
下发props告知组件B执行更新,用过react的同学都很熟悉这一套,这边不赘述。
3、业务场景的特殊性
组件交互存在两种情形,一种是纯数据模型层面的组件映射关系,完全可以由redux处理;另一种是eventEmitter层面的交互,比如使用ng2的eventEmitter或者vue的$dispatch场景。
对于后者redux其实是提供解决方案的,一种是写个小型中间件,专门用于处理pub/sub,另一种是利用redux的subscribe接口添加观察者函数来触发pub/sub。
4、是否真的需要eventEmitter
不需要。
既然你用的是react + redux,就应该遵循它的设计原则,对组件划分的时候,建立足够好的view model一一映射关系。没有什么是redux解决不了的,如果有,那就重新思考下组件设计是否合理,如果还不行,那就考虑写个中间件。



查看完整回答
反对 回复 2019-07-07
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

可能是你的action没有connect到组件上,没有把这个方法传过来。 1.参考我写的一个方案

1

2

3

4

@connect(

    state => state,

    dispatch => bindActionCreators(action, dispatch)

)


2.根据redux文档的方案

1

2

3

4

5

6

7

8

9

10

// 哪些 action 创建函数是我们想要通过 props 获取的看

function mapDispatchToProps(dispatch) {

  return {

    onIncrement: () => dispatch(increment())

  };

}

 

export default connect(

  mapDispatchToProps

)(Counter);


查看完整回答
反对 回复 2019-07-07
  • 4 回答
  • 0 关注
  • 1121 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信