离线录入数据自动调用api更新数据到数据库

Enter data offline and automatically call api to update data to database

我想在没有联网的情况下离线存储数据,联网后通过api自动更新数据到数据库。我如何使用本机反应、netinfo 和 redux-saga 或任何其他解决方案来做到这一点?非常感谢

从检测连接,你可以使用这个库

@react-native-community/netinfo

您需要创建全局组件来显示互联网连接(可能是 ModalNetworkError)。在该组件内部,您应该在使用效果中处理互联网连接,就像这样。当没有互联网连接时,您将更新您的减速器。当用户有互联网连接时,调用 api。也许你还需要存储最后一个 api 调用。

useEffect(() => {
    const unsubscribe = NetInfo.addEventListener((state) => {
      if (state.type === 'unknown') {
        setShowModal(false)
      } else if (state.isConnected && state.isInternetReachable) {
        setShowModal(false)
        // call api here
      } else if (state.type !== '' && state.isConnected && !state.isInternetReachable) {
        setShowModal(false)
        // update your reducer here
      } else {
        setShowModal(true)
      }
    })

    return () => {
      unsubscribe()
    }
 }, [showModal, dispatch])

因为我用的是react hooks,所以我把这个全局组件放到了我的routes js里面。像这样,

<NavigationContainer linking={linking}>
  <RootStackScreen guest={guest} welcome={welcome} userToken={userToken} />
  <ModalNetworkError />
</NavigationContainer>