我确实从NYTimes API中获取了数据,并通过控制台对其进行了记录。 我的初始状态是{searchResponse:null} 然后设置状态响应 this.setState =({searchResponse:response.data}); 并将其传递给另一个名为listview_component的组件。在该组件中,我处理prop的空值。
,但API的响应未推送searchResponse。并显示错误:TypeError:无法设置未定义的属性'setState'。
如何解决这个问题?
请检查此代码 https://github.com/shojibMahabub/news-scroller/tree/develop
答案 0 :(得分:0)
this.setState = {user_input}
是错误的。 setState
是一个应具有的功能:
this.setState({user_input});
最重要的是,您忘记了在构造函数中绑定函数:
this.handle_user_input = this.handle_user_input.bind(this);
在您的代码中找不到setState=({searchResponse:response.data})
的任何提及,但由于相同的问题,它可能会失败。
答案 1 :(得分:0)
如果需要访问.this
,请将该功能转换为粗箭头功能。
do_search = (keyword) => {
axios
.get(
url, // takes the variable url
{
params: {
api_key: api_key,
q: keyword
}
}
)
.then(response => {
console.log(response);
this.setState=({searchResponse:response.data});
})
.catch(function(error) {
console.log(error);
});
}