我有一個需要存盤在本地存盤/異步存盤中的 json 物件。
這是本地存盤代碼,它可以在 Web 上正確編譯。
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"
uj5u.com熱心網友回復:
您需要等待 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));
}
});
},[]);
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/394301.html
