Я получил данные из NYTimes API и занес их в консоль. Мое начальное состояние - {searchResponse: null} Затем установите состояние ответа this.setState = ({searchResponse: response.data}); и передайте его другому компоненту с именем listview_component. В этом компоненте я обрабатываю нулевое значение свойства prop.
но ответ от API не попал в searchResponse. и показать ошибку: TypeError: Невозможно установить для свойства setState значение undefined.
Как это решить?
пожалуйста, проверьте этот код https://github.com/shojibMahabub/news-scroller/tree/develop





this.setState = {user_input} не прав. setState - это функция, она должна быть:
this.setState({user_input});
Сверху вы забыли привязать свою функцию в конструкторе:
this.handle_user_input = this.handle_user_input.bind(this);
Я не смог найти упоминания о setState=({searchResponse:response.data}) в вашем коде, но он, вероятно, не работает из-за той же проблемы.
Если необходимо получить доступ к .this, преобразуйте функцию в функцию жирной стрелки.
do_search = (keyword) => {
axios
.get(
url, // takes the variable url
{
params: {
api_key: api_key,
q: keyword
}
}
)
.then(response => {
console.info(response);
this.setState=({searchResponse:response.data});
})
.catch(function(error) {
console.info(error);
});
}