dva.js中models的异步数据更新后改变UI界面的问题

我在组件中dispatch了一个effects发送请求,将异步数据保存在state中,然后在组件中的render里通过this.props.xxx.xxx获取到数据(这里好像会触发好几次,前几次都没有数据,渲染还要判断为空的处理)。现在有一个加载更多,点击后再次触发dispatch,这时候this.props.xxx.xxx的数据改变,但是好像不会出发页面的更新。但是dispatch之后,又不能this.setState到state中,这种情况肿么办

阅读 6.3k
3 个回答

state和props都可render.
所以,你就不需要将props转化为state了。
在render中直接使用从dva的state中传下来的数据就好了。

connect(state => state)(({dvaState}) => <YourComponent dvaState={dvaState}/>)

YourComponent = ({dvaState}) => {
    return (
        <div>
        //   直接取dvaState 中的值就好了。
        </div>
    );
}

楼主解决了吗,我也遇到这个问题。感觉是dva数据流没处理好。

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