react两个不相关的组件 当组件1改变一个状态时候组件2怎么改变

我是通过redux来进行传值的

场景是我点击一下组件1的导航栏 然后刷新组件2的ajax

是用this.state.contnet接受的ajax返回数据

那我应该怎么写? 急需思路...

阅读 3.3k
4 个回答

那你应该是分发一个动作,负责去请求数据

点击组件1的时候handleclick里面

this.props.dispatch({type:'COMPONENT2_AJAX'})

然后actions里面的COMPONENT2_AJAX这个action成功后,也就是拿到数据后执行
dispatch({type:'SET_STATE_CONTENT',content})
修改content,我没明白你都用了redux还要用state干啥

使用redux呢,你要将所有的state交给redux管理,只有组件内才会使用this.state。组件之间呢,需要将redux管理的state通过props传递下去。

你在单击组件1的事件中

onClick={() => dispatch(action)}

action是redux的action。当然就可以fetch任一个ajax,即你所谓的组件2的ajax.
ajax返回后呢,dispatch一个reducer,将redex的state值merge了就可了。
组件2的state应该通过connect将redux的state通过props传递下去。

你在click组件1方法中,调用组件2的ajax方法,将结果setState到content中

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题