微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 react native 中保留本地缓存的值?

如何解决如何在 react native 中保留本地缓存的值?

我有一个使用 Apollo 的 React Native 应用程序,我试图将一些用户数据存储在 apollo 缓存中,并在应用程序重新加载时保持它。

我可以像这样使用 reactive variables 写入缓存:

export default function SearchScreen() {
  return (
    <View>
      <TextInput
        onSubmitEditing={() => {
          cartItemsVar(["abc","def"]) // reactive variables imported from shared file
        }}
      />
    </View>
  );
}

然后我的购物车有另一个屏幕,我在其中查询我的 apollo 缓存。我可以在设置后查询数据,但在应用程序重新加载后,数据消失并且不存在:

const GET_CART_ITEMS = gql`
  query cartItems {
    cartItems @client
  }
`;

export default function CartScreen() {
  const { data } = useQuery(GET_CART_ITEMS);
  console.log("data:",data) // ["abc","def"] after I update but if I reload the app,it doesn't persist

  return (
    <View>
      ...
    </View>
  );
}

我已将我的 apollo 提供程序设置为使用 inMemoryCache 并尝试使用 persistCache 保留缓存。很难判断这是否适用于 react native 的 AsyncStorage,尽管大多数示例似乎都适用于非异步的浏览器 API localstorage

此设置是否适用于 AsyncStorage? 我的缓存设置错了吗? 我的反应变量是否应该从 AsyncStorage 读取(如果是这样,我如何在反应变量中调用异步代码)? 任何其他建议将不胜感激

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。