Ошибка использования.bind() в обработчике событий React

Я работаю над учебником по React и не могу понять, почему у меня ошибка.

Я пытаюсь добавить этот элемент кнопки с помощью React:

<button onClick={this.add.bind(null, 'new item')}>New Item</button>

обработчик события должен вызвать следующую функцию, которая находится внутри другого класса React:

    add: function(item) {
    var arr = this.state.comments;
    arr.push(item);
    this.setState({comments: arr});
    },

Мне сказали, что это не работает, потому что я "привязываю нулевое значение к вашим функциям, это значение и внутри функции, к которой вы обращаетесь к свойствам, это приводит к ошибке typeError (вероятно, не может получить доступ к состоянию свойства null или sh.)"

Тем не менее, я понятия не имею, что это значит или как решить проблему. Пожалуйста помоги.

Ниже приведена ссылка на мой полный проект codepen и учебник youTube (React JS Tutorials for Beginners - 13 - Создание новых компонентов с помощью NewBoston), который я использую.

http://codepen.io/Daniel_Widrich/pen/yVaXXZ

https://www.youtube.com/watchv=OKRu7i49X54&index=13&list=PL6gx4Cwl9DGBuKtLgPR_zWYnrwv-JllpA

Заранее большое спасибо. Это мой первый вопрос о Stackru, и я пытаюсь быть зачисленным в программу ученичества, основанную на этом проекте. Любая обратная связь очень ценится, и я большой мальчик, поэтому я могу справиться с критикой.

Дан

1 ответ

Сообщение об ошибке Uncaught TypeError: Cannot read property 'bind' of undefined означает, что ты звонишь bind на undefined объект. то есть. this.add является undefined,

Почему this.add не определено?

Потому что у вас нет add функция, определенная в Board составная часть. Переместить add функция от Comment компонент к Board составная часть.

(Переместите строки 15-19 вашего кода Javascript в Board составная часть.)

Рабочий кодекс

Другие вопросы по тегам