Задать вопрос
@tekleworm

Не могу вызвать state?

Есть state
constructor() {
        super();
        this.state = {
            data: {},
            trainer: [],
            diagram: this.chartData(),
        };
    }


В data есть числовое поле boys и girls, хочу их вызвать в функции chartData
chartData() {
        console.log(this.state.data.boys);
        return {
            labels: ['Boys', 'Girls'],
            datasets: [
                {
                    label: 'My First dataset',
                    fillColor: 'rgba(220,220,220,0.2)',
                    strokeColor: 'rgba(220,220,220,1)',
                    pointColor: 'rgba(220,220,220,1)',
                    pointStrokeColor: '#fff',
                    pointHighlightFill: '#fff',
                    pointHighlightStroke: 'rgba(220,220,220,1)',
                    data: [3, 0],
                },
            ]
        }
    }


Но дает ошибку TypeError: this.state is undefined. Что я делаю не так?
  • Вопрос задан
  • 131 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 2
RomReed
@RomReed
JavaScript, Flutter, ReactNative, Redux, Firebase
constructor() {
        super();
        this.state = {
            data: {},
            trainer: [],
            diagram: this.chartData(),
        };

this.chartData=this.chartData.bind(chartData)
    }
Ответ написан
miraage
@miraage
Старый прогер
На момент вызова функции объект еще не записан в "this.state"
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
DarthJS
@DarthJS
Либо chartData обьявляем как стрелочную функцию
chartData = () => {
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы