React能够按照http://facebook.github.io/React/docs/jsx-gotchas.html中的描述呈现自定义属性:
如果您想使用一个自定义属性,您应该在它前面加上data-。
这是个好消息,但我找不到从事件对象访问它的方法,例如: 元素和 这些都没用。render: function() {
...
<a data-tag={i} style={showStyle} onClick={this.removeTag}></a>
...
removeTag: function(event) {
this.setState({inputVal: event.target????});
},
data-
属性以html格式呈现。像style
这样的标准属性可以作为event.target.style
fine访问。而不是event.target
: event.target.props.data.tag
event.target.props.data["tag"]
event.target.props["data-tag"]
event.target.data.tag
event.target.data["tag"]
event.target["data-tag"]
以一种可能与您所要求的不同的方式帮助您获得所需的结果:
render: function() {
...
<a data-tag={i} style={showStyle} onClick={this.removeTag.bind(null, i)}></a>
...
},
removeTag: function(i) {
// do whatever
},
请注意bind()
。因为这都是javascript,所以您可以做类似的方便的事情。我们不再需要将数据附加到DOM节点以跟踪它们。
这比依赖DOM事件要干净得多。
2017年4月更新:这些天我会写onclick={()=>this.removeTag(I)}
而不是.bind
event.target
提供了本机DOM节点,然后需要使用常规DOMAPI来访问属性。下面是关于如何做到这一点的文档:使用数据属性。
您可以执行event.target.dataset.tag
或event.target.getAttribute('data-tag')
;两个都管用。