use*_*456 5 javascript reactjs
我很难将动态事件附加到我的反应组件.我有以下组件:
var ListItem = React.createClass({
render: function() {
return (
<li className="selector" >
<div className="column">
<h2 className="commentAuthor">
{this.props.author}
</h2>
<div>{this.props.children}</div>
</div>
</li>
);
}
});
var ListBox = React.createClass({
mixins : [MyMixin],
render : function() {
this.nodes = this.props.data.map(function(item) {
return <ListItem author={item.author}>{item.text}</ListItem>;
});
return (
<ul id="columns">
{this.nodes}
</ul>
);
}
});
Run Code Online (Sandbox Code Playgroud)
如您所见,ListItem的className设置为"selector".基于这个"选择器",我想查询节点并在MyMixin中动态附加事件.
React.renderComponent(
<ListBox data={data} selector="li.selector" />,
document.getElementById('example')
);
Run Code Online (Sandbox Code Playgroud)
也许我的想法完全错了,因为我对React不熟悉.
问候
您应该直接在ListItem组件上侦听事件.React不希望您考虑稍后附加侦听器.
var ListItem = React.createClass({
handleClick: function(event) {
// Handle ListItem click
},
handleDoubleClick: function(event) {
// Handle ListItem double click
},
render: function() {
return (
<li className="selector"
onClick={this.handleClick}
onDoubleClick={this.handleDoubleClick}>
<div className="column">
<h2 className="commentAuthor">
{this.props.author}
</h2>
<div>{this.props.children}</div>
</div>
</li>
);
}
});
Run Code Online (Sandbox Code Playgroud)
React期望属性与事件名称完全匹配.您可以查看支持的事件的完整列表,以确保使用正确的名称.
| 归档时间: |
|
| 查看次数: |
5052 次 |
| 最近记录: |