在 React Native 中将 Localstorage 转换为 AsyncStorage

Converting Localstorage to AsyncStorage in React Native

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

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

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

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

这就是我将 ios 的相同代码转换为 AsyncStorage 的方式(导入后)

     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 解析错误:意外的标识符“对象”

您需要等待 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));    
           }
         });
     },[]);