Ошибка типа: невозможно прочитать свойство `State` неопределенного значения

#javascript #reactjs #react-native

#javascript #reactjs #react-native

Вопрос:

Получение ошибки :

Ошибка типа: не удается прочитать свойство ‘state’ неопределенного типа

Я сталкиваюсь с этой ошибкой, когда собираюсь получить значение моего входного состояния по событию onSubmit() .

 onFormSubmit(event){
    event.preventDefault();
    console.log(this.state.term);
}
  

Комментарии:

1. В вашем конструкторе добавьте this.onFormSubmit = this.onFormSubmit.bind(this); .

2. или измените свою функцию на onFormSubmit = (event) =>

3. привяжите ваш onFormSubmit this.onFormSubmit = this.onFormSubmit.bind(this);

4. Всегда помните об этом: вам нужно привязать свою функцию к конструктору перед ее вызовом.

5. Поиск ошибки приводит к множеству существующих вопросов.

Ответ №1:

У вас нет контекста ( this не привязан к вашей функции).

Вы можете исправить это, используя одно из следующих:

Сначала привяжите это в конструкторе

 constructor(props) {
  super(props);
  this.onFormSubmit = this.onFormSubmit.bind(this);
}
  

Во-вторых, используйте функции со стрелками

 onFormSubmit = (event) => {
  ...
}
  

В-третьих, используйте autobind-decorator или подобное

 @boundMethod
onFormSubmit(event) {
  ...
}
  

Ответ №2:

Вместо этого используйте функцию arrow, чтобы:

Изменить

 onFormSubmit(event){
    event.preventDefault();
    console.log(this.state.term);
}
  

Для

 onFormSubmit= (event)=>{
    event.preventDefault();
    console.log(this.state.term);
}
  

Ответ №3:

Используйте функцию со стрелкой, например :

 onFormSubmit = (event) =>{
  event.preventDefault();
  console.log(this.state.term);
}