React能够呈现自定义属性 http://facebook.github.io/react/docs/jsx-gotchas.html:

如果要使用自定义属性,则应该在其前面加上 数据- - - - - -。 <div data-custom-attribute="foo" />

这是一个好消息,除了我找不到一种方法来访问它从事件对象,例如:

render: function() {
...
<a data-tag={i} style={showStyle} onClick={this.removeTag}></a>
...
removeTag: function(event) {
    this.setState({inputVal: event.target????}); 
},

元素和数据属性在html中呈现良好。像style这样的标准属性可以通过event.target.style fine访问。 而不是事件。我试了试:

 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"]

这些都没用。


当前回答

这对我很管用……在本例中,我的属性名为“attr”。

e.target.selectedOptions[0].attributes.attr.value

其他回答

这对我很管用……在本例中,我的属性名为“attr”。

e.target.selectedOptions[0].attributes.attr.value

事件。target为您提供本机DOM节点,然后您需要使用常规DOM api来访问属性。下面是关于如何做到这一点的文档:使用数据属性。

你可以使用event.target.dataset.tag或event.target.getAttribute('data-tag');两种方法都可以。

<div className='btn' onClick={(e) =>
     console.log(e.currentTarget.attributes['tag'].value)}
     tag='bold'>
    <i className='fa fa-bold' />
</div>

所以e.currentTarget.attributes['标签']。价值对我有用

尝试而不是分配dom属性(这是缓慢的),只是将你的值作为参数传递给实际创建你的处理程序的函数:

render: function() {
...
<a style={showStyle} onClick={this.removeTag(i)}></a>
...
removeTag = (customAttribute) => (event) => {
    this.setState({inputVal: customAttribute});
}

我不了解React,但在一般情况下,你可以像这样传递自定义属性:

1)在html-tag中定义一个data- prefix的新属性

data-mydatafield = "asdasdasdaad"

2) get from javascript with

e.target.attributes.getNamedItem("data-mydatafield").value