【发布时间】:2014-08-11 16:20:20
【问题描述】:
我正在开发一个组件存根,其中有一个图块网格,每个图块都需要一个单击处理程序,以及一个具有不同单击处理程序的特定“新”图块。我正在尝试让点击处理程序正常工作,但该事件似乎永远不会触发。
有什么想法吗?
var grid = React.createClass({
onCreateNew: function () {
console.log("onCreateNew");
},
render: function () {
var tiles = [];
if (this.props.items) {
tiles = this.props.items.map(function (item, index) {
//create a tile for each item
});
}
//always append "new" tile for the last one
tiles.push(React.DOM.div({
onClick: this.onCreateNew, className: "tile new_tile"
},
React.DOM.div({ className: "plus", onClick: this.onCreateNew }, "+")
));
return React.DOM.div({ id: "flowsheetPane" }, tiles);
}
});
【问题讨论】:
-
我将您的代码粘贴到 base React JSFiddle 中,它似乎工作正常 (example)。
-
你是对的。这很奇怪。现在我必须弄清楚为什么它在我的环境中不起作用。
-
这个组件嵌套几个子级有关系吗?
-
您是否在
map调用中绑定了另一个onClick?如果您打算引用组件,请务必将this作为上下文传递,否则this将等于window:this.props.items.map(function() ..., this); -
您是否收到任何控制台错误?
标签: reactjs