React-Native中Redux结合PullList时遇到List没有及时刷新问题2018-11-1

问题描述

在PullList列表中,需要点击列表的某一行,进入列表的详细信息。然后修改列表的信息后,返回主List中。但是今天遇到个坑,就是修改完详细信息后。主界面没有同步刷新。看网上参考了很多帖子,都没有解决。

参考1:没解决,但是帖子说的很有道理,但是在我这里不适用。可以一读,防止以后绕类似的坑。
https://www.jianshu.com/p/d762b319cd60

参考2:其实和上面道理一样,同样没解决。
https://www.jianshu.com/p/b317fb9b6770

我自己环境:

react-native 0.57
redux
PullList

大致流程:


React-Native中Redux结合PullList时遇到List没有及时刷新问题2018-11-1_第1张图片
image.png

但是redux内的数据已经改变成功了,只不过是界面没有渲染。原因也没有找到。。。坑啊。。。

然后换了另一个办法,就是用到了通知DeviceEventEmitter

Detail详情界面内,点击保存按钮

    //这个方法是更新redux,更新内容是可以的,但是没有渲染。因此数据已经是最新的了。
     this.updateDispatchDataStatus(json)
    //重点来了,这里给List界面发送个通知,告诉界面,我刷新redux了,你要更新渲染数据。
      DeviceEventEmitter.emit('left', '发送了个通知');

List界面内

 用PullList,state内定义了:
list: (new ListView.DataSource({ rowHasChanged: (r1, r2) => r1 !== r2         
})).cloneWithRows(this.props.dispatchDataSource),

   componentDidMount() {
    //添加监听
    this.deEmitter = DeviceEventEmitter.addListener('left', (a) => {
        console.info(this.props.dispatchDataSource)
        this.setState({
           this.setState({
              //收到通知然后更新list,就重新渲染了。
              list: this.state.list.cloneWithRows(this.props.dispatchDataSource),
        });
        });
    });
} 

总结

还是没有本质的解决问题,但是这样也达到了目的。有时间再仔细看看吧。
我的QQ337241905,如果有细节不了解可以加我。

你可能感兴趣的:(React-Native中Redux结合PullList时遇到List没有及时刷新问题2018-11-1)