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