我想添加异步存储方法来保存我的json响应, 但我不知道如何在其中专门添加
我已经尝试过这样
UserRegisterationFunction = () => {
const { UserName } = this.state;
const { UserEmail } = this.state;
const { UserPassword } = this.state;
fetch('http://192.168.1.7/test/user_registration.php', {
method: 'POST',
headers: {
'Accept' : 'application/json',
'Content-Type' : 'application/json'
},
body: JSON.stringify({
name: UserName,
email: UserEmail,
password: UserPassword
})
}).then((response) => response.json())
.then((responseJson) => {
AsyncStorage.setItem('token', responseJson)
// this._onValueChange(STORAGE_KEY, responseData.id_token),
Alert.alert(responseJson);
}).catch((error) => {
console.log(error)
});
我成功收到警报,但是我不知道如何添加responseJson或是否正确使用了
答案 0 :(得分:1)
您可以使用异步系统或不使用异步系统而成功保存。
要异步运行:
.then(async (responseJson) => {
await AsyncStorage.setItem('token', responseJson.id_token);
Alert.alert(responseJson);
}).catch((error) => {
console.log(error)
});
如果您的responseJson数据是这样的:
Object {
id_token : "myid"
}
使用以下屏幕上的getItem
功能检查该值。
async componentDidmount() {
const tokens = await AsyncStorage.getItem('token');
alert(tokens); // You can see 'myid'
}
答案 1 :(得分:0)
JSON响应是一个对象,您不能将其直接存储在AsyncStorage中。您只能通过将对象转换为字符串来存储它。
要存储对象:
AsyncStorage.setItem('KEY', JSON.stringify(object))
要检索对象:
const jsonObjectString = AsyncStorage.getItem('KEY')
const jsonObject = JSON.parse(jsonObjectString)