coolswood
@coolswood
https://coolswood.github.io

Ошибка при вызове функции?

class Wrap extends React.Component {
    constructor(props) {
        super(props);
        this.state = { tasks: [
            ['Первый', 'gkkk'],
            ['Второй', 'gkkk']
        ]};
        this.updateText = this.updateText.bind(this);
        this.deleteBlock = this.deleteBlock.bind(this);
    }
    deleteBlock(i) {
        var arr = this.state.tasks;
        arr.splice(i, 1);
        this.setState ({tasks: arr});
    }
    updateText(text, i) {
        var arr = this.state.tasks;
        arr[i] = text;
        this.setState ({tasks: arr});
    }
    eachTask(item, i) {
        return (<Task key={i} index={i} update={this.updateText} deleteBlock={this.deleteBlock}>
                {item}
                </Task>
               )
    }
    render() {
        return (
            <div className="card_wrap">
                {
                this.state.tasks.map(this.eachTask)
                }
            </div>
        )
    }
}


Я пытаюсь вызвать функции, передавая их в состояние update={this.updateText} deleteBlock={this.deleteBlock}. Но выдает ошибку undefined. В чем может быть проблема?
  • Вопрос задан
  • 180 просмотров
Решения вопроса 1
@davidnum95
Функция eachTask не привязана к this компонента. Нужно по аналогии с updateText привязать функцию в конструкторе:
this.updateText = this.eachTask.bind(this);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы