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

react和reudx ,我应该在哪初始化组件的数据?

react和reudx ,我应该在哪初始化组件的数据?

大话西游666 2019-03-13 13:15:52
我有个组件是通过state更新ui的,但是它的数据需要异步请求获取,我在哪去发送这个请求比较好?reducer创建的时候?异步请求貌似不行吧redux的容器层?(connect)如果放在这我如何在或获取数据后更新state?组件的生命周期?componentWillMount不行,它只执行一次,下次想更新没法componentWillUpdate我当前做法是放在这,但是容易造成死循环
查看完整描述

3 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

componentWillReceiveProps(nextProps) {

  if (nextProps.someReducer !== this.props.someReducer) {

    this.setState({

      a: reducer.a,

    }, () => {

       dispatch(someAction());

    });

  }

}

如果初始化时也需要的话,那么需要提供一个而外的函数,并且在componentDidMount和componentWillReceiveProps同时处理


someLogicMethod(props) {

  // todo

}


componentWillReceiveProps(nextProps) {

  if (nextProps.someReducer !== this.props.someReducer) {

    this.someLogicMethod(nextProps);

  }

}


componentDidMount() {

  this.someLogicMethod(this.props);

}


查看完整回答
反对 回复 2019-04-07
?
四季花海

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

在componentDidMount里异步请求获取,然后把数据存到redux里,state应该是绑的redux的值,然后redux更新的时候,state也会实时更新的。


查看完整回答
反对 回复 2019-04-07
?
MMTTMM

TA贡献1869条经验 获得超4个赞

“不行,它只执行一次,下次想更新没法”,你是怎么更新的?用户操作点击更新?还是自动每几秒更新?


查看完整回答
反对 回复 2019-04-07
  • 3 回答
  • 0 关注
  • 896 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号