将字符串附加到url时遇到麻烦

时间:2019-08-09 11:42:48

标签: react-native

我无法将字符串附加到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,那么它什么也没打印。有人请帮我将字符串附加到网址上

1 个答案:

答案 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