这是我的代码。在此我得到了x,但是当我尝试解析x以获取x'isloggedin'的对象时,它给出了错误。如果您了解我的问题,我该怎么做告诉我。
componentDidMount() {
this.onLoad();
}
onLoad = async () => {
try {
var walletdata = await AsyncStorage.getItem('wallet');
this.setState({x: JSON.parse(walletdata)})
this.setState({y: JSON.stringify(this.state.x)})
console.log("output: "+ this.state.y);
console.log("output y:"+JSON.parse(this.state.y.isloggedIn));
}catch(error){
console.log("error: "+error);
}
}
错误:语法错误:JSON解析错误:意外的标识符“未定义”
答案 0 :(得分:0)
可能是因为“钱包”键在缓存存储中具有未定义的值。您应该先检查该值(从存储中获取该项目后立即检查),如果未定义,则必须首先进行设置。
答案 1 :(得分:0)
可能您需要等待第一个setState函数完成,以便您可以在第二次调用中访问它。
简而言之,在状态中设置值会花费一些时间,并且您正在尝试访问它,然后再更新状态。因此,请尝试访问setState函数的回调中的值。
相反,
for index, value := range ids {
valueMap := value.(map[string]interface{})
fmt.Println(index, valueMap["ID"])
}
您可以使用此:
this.setState({x: JSON.parse(walletdata)})
this.setState({y: JSON.stringify(this.state.x)})
console.log("output: "+ this.state.y);
console.log("output y:"+JSON.parse(this.state.y.isloggedIn));
答案 2 :(得分:0)
我已经解决了我的问题。谢谢您的回答。下面是我如何解决我的问题。
try {
var walletdata = await AsyncStorage.getItem('wallet');
this.setState({wallet: JSON.stringify(JSON.parse(walletdata))})
this.setState({isLoggedin:JSON.parse
(this.state.wallet).isLoggedin});
console.log(this.state.isLoggedin);
}catch(error){
console.log("error: "+error);
}