Попытка изменить цвет эллипса в массиве, в p5. js после того, как прошло время, но получаю ошибку: «TypeError: цвет не является функцией» - PullRequest
0 голосов
/ 05 апреля 2020

Пытаясь создать симулятор для COVID-19, через некоторое время после заражения человека в моем симуляции я хочу, чтобы он выздоровел, и это можно показать, изменив цвет человека на розовый.

Это то, что я пытаюсь сделать до сих пор:

setRecoveredTimer() {
        setTimeout(function () {
            let newColor = '#d176d6';
            this.isRecovered = true;
            this.color = color(newColor);
        }, 5000);
}

Всякий раз, когда прошло 5 секунд, я получаю эту ошибку:

Ошибка типа: цвет не функция

Я могу изменить цвет в других местах, мой код, например, здесь:

changeColor() {
        if (this.isInfected == true) {
            this.color = color('#ed2d2d');
        }
    }

Если это поможет, остальная часть моего проекта здесь: https://github.com/perkynades/Simulation-of-COVID19/tree/part1

Застрял в этом вопросе на один день, поэтому любая помощь будет оценена:)

1 Ответ

0 голосов
/ 07 апреля 2020

Что, если вы сделаете это?

setRecoveredTimer() {
        setTimeout(()=>{
            let newColor = '#d176d6';
            this.isRecovered = true;
            this.color = color(newColor);
        }, 5000);
}

Синтаксис стрелки ES6 () => {} такой же, как и функция () {}, но он сохраняет «this» в том месте, где он инициализирован , В случае выше; this это класс, в котором существует setRecoveredTimer. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions

...