如何在刷新时重新呈现Flatlist?

时间:2018-12-30 10:46:41

标签: database sqlite react-native react-native-flatlist

您能告诉我如何在刷新时重新呈现Flatlist吗?我将SQLite数据库用于本地数据库,我有两个页面,一个页面用于显示所有工作程序,另一个页面用于创建工作程序。创建新Worker(实时重新加载/刷新)时,如何自动重新渲染页面以显示所有Worker?

1 个答案:

答案 0 :(得分:0)

根据应用程序的要求,最简单的解决方案是在用户按下create worker按钮并以您的状态更新数据数组后,立即使用您正在使用的get方法从应用程序中提取数据。或道具(最好是道具)。如果检测到状态或道具发生变化,React Native将始终重新渲染。

上述方法的一个问题是,它将为当前用户刷新,但是想象另一个用户也在使用该应用程序,除非他们自己刷新组件,否则不会为他们实时刷新(这可能是在并超出页面)。

一种解决方法是使用Socket.io(https://socket.io/)来构建真正的实时应用程序,Socket.io允许您侦听所有用户的更改并将更新请求发送给所有用户。用户又应根据更改刷新其应用程序。

编辑: 将以下方法添加到您的WorkersView类中,假设它不同于您的createWorker屏幕,则WorkersView屏幕将在每次用户进入屏幕时更新。

componentDidMount() {
    this.props.navigation.addListener('willFocus', this.getAllWorkers);
}

注意:我建议您使用Redux或AsyncStorage之类的存储系统,这样您就可以在所有屏幕上更有效地交流信息。