在React事件处理程序

时间:2017-02-06 21:46:41

标签: reactjs event-handling function-binding

我正在通过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});
    },

有人告诉我这不起作用,因为我“将null绑定到你的函数这个值,并且在你从这里访问属性的函数内部导致了一个typeError(可能:无法访问属性状态为null或sh。)”

但是,我不知道这意味着什么或如何解决问题。请帮忙。

下面是我完整的codepen项目和youTube教程的链接(我正在使用的React JS Tutorials for Beginners - 13 - 由Newwoston创建新组件)。

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

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

非常感谢您提前。这是我在StackOverflow上的第一个问题,我正试图接受基于这个项目的学徒计划。任何反馈都非常感谢,我是一个大男孩,所以我可以处理批评。

-Dan

1 个答案:

答案 0 :(得分:0)

错误消息Uncaught TypeError: Cannot read property 'bind' of undefined表示您在bind对象上调用undefined。即。 this.addundefined

为什么this.add未定义?

因为您没有add组件中定义的Board函数。将add功能从Comment组件移至Board组件。

(将您的Javascript代码的第15-19行移至Board组件。)

Working codepen

相关问题