this
в анонимной функции, которую вы передаете setInterval
, имеет значение, отличное от этого на уровне вызова setInterval
.
ИМХО, вы можете решить вашу проблему, переписав changeSpan
добавив явную привязку external this
следующим образом:
changeSpan =() => {
let span = document.querySelector('#staff_span');
const self = this;
for (let i = 0; i <= 3 ; i++) {
let interval = setInterval(function () {
span.innerText = `${self.state.text[i]}`
}, 2000);
}
};
или определение анонимной функции, переданной в setInterval
с использованием lambda (что должно гарантировать привязку this
вы ожидаете):
changeSpan =() => {
let span = document.querySelector('#staff_span');
for (let i = 0; i <= 3 ; i++) {
let interval = setInterval( () => {
span.innerText = `${this.state.text[i]}`
}, 2000);
}
};
Я не могу проверить эти решения в данный момент, поэтому я заранее прошу прощения за опечатки и ошибки ... Дайте мне знать, если это может помочь вам!