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

plutchar
  • 456

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

回复
阅读 4.2k
3 个回答
✓ 已被采纳

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

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

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

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

宣传栏