我試圖通過在應用程式中使用 AsyncStorage 來保存用戶組態檔(姓名、年齡、性別...)。我只是能夠保存其中一個輸入,而不是所有輸入。有人知道如何從 TextInput(功能組件)創建用戶資料的物件嗎?
uj5u.com熱心網友回復:
您可以將物件 JSON.stringify 放入 AsyncStorage 然后 JSON.parse 值,只要您想從 AsyncStorage 獲取物件。
AsyncStorage.setItem(data, JSON.stringify(data), (err)=> {
if(err){
console.log("an error");
throw err;
}
console.log("success");
}).catch((err)=> {
console.log("error is: " err);
});
然后像接收它一樣,
try {
const value = await AsyncStorage.getItem(data);
if (value !== null) {
// We have data!!
console.log(JSON.parse(value));
}
} catch (error) {
// Error retrieving data
}
現在,如果您想知道如何將資料存盤為來自 TextInput 的物件,有多種方法。其中之一是使用 useState。
const [userData, setUserData] = useState({
name: '',
age: 0,
gender: '',
...
});
然后,一旦您從 TextInput 獲取任何輸入的值,將其另存為,
setUserData(prev => ({
...prev,
['name']: textInputName,
}))
uj5u.com熱心網友回復:
這很簡單。首先,您可以像這樣定義一個處于狀態的物件:
const [myUser,SetMyUser]= useState({
name:"",
age:0,
gender:"",
});
并在文本輸入中設定每個專案,如下所示:
SetMyUser(prev => ({
...prev,
['name']: txtName,
}))
之后,您可以將其保存AsyncStorage或發送到您的“服務器”。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/402237.html
上一篇:為什么“this.userid”正在分配未定義的值?“this”指向類還是物件本身?timestamp_generate_function()雖然有效
