TypeError: невозможно установить для свойства setState значение undefined. реагировать

Я получил данные из 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" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
591
2

Ответы 2

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);
            });
    }

Другие вопросы по теме