这是我的代码:
class App extends Component {
state = {
query: '',
results: []
}
handleSearch(e) {
var query = e.target.elements.query.value;
axios.get("http://www.omdbapi.com/?s=" + query + "&page=1&apikey=xxxx")
.then(function (response) {
console.log(response.data);
this.setState({
results: response.data.Search
});
}.bind(this))
.catch(function (error) {
});
e.preventDefault();
}
我正在尝试从 omdb 中获取数据并将其显示在页面上。
问题是setState无法更新数组results
?
有什么主意吗?谢谢
答案 0 :(得分:1)
您绑定了axios请求正确完成时调用的函数,但是您还必须绑定handleSearch
方法本身。您可以在构造函数中执行此操作,或者改为使用类属性arrow函数:
class App extends Component {
state = {
query: '',
results: []
}
handleSearch = (e) => {
// ...
}
}