У меня проблемы с манипулированием серией обещаний в приложении, которое я создаю.
Мой основной компонент отображает кнопку компонента React, например:
ButtonsList.js
<Button
onClick={() => {
this.props.onButtonClicked().then(() => {
console.log(‘got in then’)
}).catch(() => {
console.log(‘got in catch’)
)}
}
>
Когда кнопка нажата, она вызывает функцию в родительском компоненте onButtonClicked.
PageItems.js
onButtonClicked = () => {
return this.onSubmit().then((promiseValue) => {
console.log(promiseValue)
}).catch((error) => {
console.log(error);
console.log(‘promise rejected’);
});
}
Родитель onSubmit вызывает функцию, которая возвращает обещание.
onSubmit = () => {
errors = this.checkForErrors();
if (errors) {
return Promise.reject(‘has errors’);
} else {
return Promise.resolve(‘no errors’);
}
}
Мои операторы журнала консоли для «имеет ошибки» и «обещание отклонено» регистрируются, но в консоли я получаю сообщение об ошибке в ButtonsList.js: Uncaught TypeError: Невозможно прочитать свойство 'then' из undefined. Я читал, что эта ошибка часто возникает, когда обещание не возвращено, но я не могу понять, что мне не хватает. Любая помощь с благодарностью!