【发布时间】:2018-04-07 19:35:52
【问题描述】:
我有一个处理程序,它会在输入字段发生更改时触发。但是,当我将状态记录到控制台时,resData 是“未定义”吗?这是不可能的,因为 console.log(body) 确实会返回结果。
handlePersonNameChange(event) {
var resData
request('https://swapi.co/api/people/?search='+event.target.value, function (error,response,body) {
console.log(body)
resData = body
})
this.setState({personData: resData});
console.log(this.state)
}
【问题讨论】:
-
您应该在请求回调中设置状态。此外,在 React 中设置状态是异步的,所以你不能在下一行
setState()然后console.log(this.state)并期望看到状态更新。 -
在这种情况下,我得到 TypeError: this.setState is not a function
标签: reactjs