你能告诉我如何在刷新时重新渲染平面列表吗?我使用SQLite数据库作为本地数据库,我有两个页面,一个用于显示所有工作程序,另一个用于创建工作程序。创建新Worker(实时重新加载/刷新)时,如何自动重新呈现页面以显示所有Worker?
根据应用程序的要求,最简单的解决方案是在用户按下create worker按钮后立即使用get方法从应用程序中提取数据,并更新您的状态或道具(最好是道具)中的数据数组。如果React Native检测到状态或道具发生变化,它将始终重新渲染。
上述方法的一个问题是,它会为当前用户刷新,但假设另一个用户也在使用该应用程序,除非他们自己刷新组件,否则它不会为他们实时刷新(这可能是在页面中来回切换)。
解决方法之一是使用Socket.io(https://socket.io/),要构建一个真正实时的应用程序,Socket.io将允许您侦听所有用户的更改,并向所有用户发送更新请求,这些用户将根据更改刷新他们的应用程序。
EDIT:将以下方法添加到WorkersView
类中,假设它与createWorker屏幕不同,则每次用户进入屏幕时,WorkersView
屏幕都会更新。
componentDidMount() {
this.props.navigation.addListener('willFocus', this.getAllWorkers);
}
注意:我建议您使用像Redux或AsyncStorage这样的存储系统,这样您就可以更高效地在所有屏幕上交流信息。