React App - 首次尝试调用第三方API

时间:2018-01-17 18:10:16

标签: reactjs

我有一个反应应用程序,允许用户从LI中选择,以根据他们选择的LI从第三方API获取搜索结果。 LI有一个点击处理程序,作为其中的一部分,向第三方发出API请求。第一次单击LI时,值为null,即使它应该是React状态的一部分。这是点击处理函数的一部分:

let choice = event.currentTarget.innerText;
this.setState({inputVal: choice});
let urlquery = this.state.inputVal
console.log(urlquery);

第一次单击LI时,console.log返回null。第二次单击它,您将返回正确的值。有关如何解决此问题的任何建议吗?

由于

1 个答案:

答案 0 :(得分:0)

运行let urlquery = this.state.inputVal行时,状态尚未更新。对setState(...)的调用是异步的。在此处参考有关setState(...)的反应文档:https://reactjs.org/docs/react-component.html#setstate

您处理此问题的选项是使用setState(...)的第二个参数,这是一个在setState实际更新state或使用componentDidUpdate后运行的回调}。两者都在上面引用的文档中提到。