Я имею дело со следующей ошибкой:
Home.js: 231 Uncaught (в обещании) TypeError: _this9.setState не является функцией. Ошибка исходит из последней строки следующей функции:
checkIfRunning() {
return fetch('/api/following/iscurrentlyrunning', {
credentials: 'include',
})
.then(response => {
console.log(response.status);
if (response.status === 200) {
return response.json();
}
})
.then(response => {
let cState = this.state;
cState.running = response;
this.setState(cState);
});
}
Я связал функцию в конструкторе компонентов, и когда я вызываю ее отдельно, она работает нормально. Проблема возникает, когда я пытаюсь вызвать функцию в таймере (setInterval). В componentWillMount я вызываю несколько функций:
componentWillMount() {
this.checkIfFirstTimeLogin()
.then(() => {
// user already exists
if (!this.state.firstLogin) {
this.Name();
this.getRole();
setInterval(() => this.checkIfRunning(), 10000);
}
})
.then(() => {
let cState = this.state;
cState.pageLoading = false;
this.setState(cState);
})
.catch(error => console.log(error));
}
У меня есть интуиция, что цепь обещаний нарушает связывание по причине, которую я в настоящее время не понимаю.
Спасибо за любую помощь,