我无法将字符串附加到url
constructor(props)
{
super(props)
this.state = {
value:'',
}
}
上面提到的获取字符串的代码
AsyncStorage.getItem('tokenkey', (err, value) => {
if (err) {
console.log(err)
} else {
//JSON.parse(value)
this.setState({
value: JSON.stringify(value)
})
console.log('sp token'+ "\t" +value)
console.log('state token'+ "\t" +this.state.value)
}
})
上面的代码是从令牌键获取令牌值并将其存储到值字符串中。到这里为止,我没有遇到任何问题,但是当我将此字符串分配给url作为要获取的参数时,它将打印空白。 网址是
const url = "http://www.mortgagemarket.ae/web/api/get_client?token="+this.state.value
console.log('url is'+"\t"+url)
如果我打印控制台URL,那么它什么也没打印。有人请帮我将字符串附加到网址上
答案 0 :(得分:2)
实际上,setState是异步的!我认为您的问题就在这里。试试这个->
this.setState({
value: JSON.stringify(value)
},()=>{
url = "http://www.mortgagemarket.ae/web/api/get_client?token="+this.state.value
})
我认为您在实际设置值之前使用url
。
并且AsyncStorage.getItem
也是异步的
因此您必须在url
内使用AsyncStorage.getItem's callback function
或必须使用async-await