【问题标题】:Converting Localstorage to AsyncStorage in React Native在 React Native 中将 LocalStorage 转换为 AsyncStorage
【发布时间】:2022-01-25 23:49:24
【问题描述】:

我有一个 json 对象需要存储在本地存储/异步存储中。

这是本地存储代码,它可以在网络上正确编译。

    useEffect(()=>{
      const value = localStorage.getItem(`myData${id}`);
      console.log(value);
      if(value){
          setData(JSON.parse(value));
      }
      },[])

  useEffect(() => {
      localStorage.setItem(`myData${id}`, JSON.stringify(data));
      })

这就是我如何将相同的代码转换为 AsyncStorage for ios(导入之后)

     useEffect(()=>{
      const value = AsyncStorage.getItem(`myData${id}`);
      // console.log(value);
      if(value){
          setData(JSON.parse(value));    //ERROR HERE WITH JSON HIGHLIGHTED IN YELLOW 
      }
      },[])

  useEffect(() => {
      AsyncStorage.setItem(`myData${id}`, JSON.stringify(data));
     })

这显示了一个渲染错误JSON Parse error: Unexpected identifier "object"

【问题讨论】:

    标签: reactjs react-native asynchronous local-storage asyncstorage


    【解决方案1】:

    您需要等待 AsyncStorage 获取您的商品数据:

         useEffect(()=>{
           const fn = async () => {
             const value = await AsyncStorage.getItem(`myData${id}`);
             if(value){
               setData(JSON.parse(value));    
             }
           }
    
           fn();
          },[]);
    

         useEffect(()=>{
           AsyncStorage
             .getItem(`myData${id}`)
             .then( value => { 
               if(value){
                 setData(JSON.parse(value));    
               }
             });
         },[]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-03
      • 1970-01-01
      • 2020-05-25
      • 1970-01-01
      • 2019-01-30
      • 2017-05-28
      • 2019-05-27
      相关资源
      最近更新 更多