Ошибка использования.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
составная часть.)