Javascript 我使用'e.currentTarget.dataset.id'获取单击的li的inex,但给出了'undefined'`

Javascript 我使用'e.currentTarget.dataset.id'获取单击的li的inex,但给出了'undefined'`,javascript,html,reactjs,ecmascript-6,Javascript,Html,Reactjs,Ecmascript 6,在下面的代码中,我使用e.currentTarget.dataset.id获取单击的li的索引,但它返回未定义的,问题是什么?如何使用e获取索引 class Answers extends React.Component { constructor(props) { super(props); } handleCheck(e) { console.log(e.currentTarget.dataset.id); } render() { return

在下面的代码中,我使用
e.currentTarget.dataset.id
获取单击的li的索引,但它返回
未定义的
,问题是什么?如何使用
e
获取索引

 class Answers extends React.Component {
    constructor(props) {
        super(props);
}

handleCheck(e) {
    console.log(e.currentTarget.dataset.id);
}

render() {
    return (
        <div>
            <ul>

                <li onClick={this.handleCheck.bind(this)} data-id="1"><span>A</span> <p>{this.props.answers[0]}</p></li>

                <li onClick={this.handleCheck.bind(this)} data-id="2"><span>B</span> <p>{this.props.answers[1]}</p></li>

                <li onClick={this.handleCheck.bind(this)} data-id="3"><span>C</span> <p>{this.props.answers[2]}</p></li>

                <li onClick={this.handleCheck.bind(this)} data-id="4"><span>D</span> <p>{this.props.answers[3]}</p></li>

                {this.props.answers[3]}</p></li>
          </ul >
            </div >
        );
    }
}
类答案扩展了React.Component{
建造师(道具){
超级(道具);
}
手检(e){
console.log(e.currentTarget.dataset.id);
}
render(){
返回(
  • A{this.props.answers[0]}

  • B{this.props.answers[1]}

  • C{this.props.answers[2]}

  • D{this.props.answers[3]}

  • {this.props.answers[3]}

); } }
dataset
给定DOM元素中的
data xx
属性。所以
test
dataset.id
计算为1。呈现dom元素时需要传递数据属性,然后才能读取它们

类答案扩展了React.Component{
建造师(道具){
超级(道具);
}
手检(e){
console.log(e.currentTarget.dataset.id);
}
render(){
const{answers}=this.props;
返回(
    {answers.map((answer,i)=>
  • {String.fromCharCode(65+i)}{answer}

  • )}
); } } const answers=['1','2','3']; ReactDOM.render(,document.getElementById('root'))


我在任何地方都看不到身份证?@JonasW。抱歉,我的错误,编辑了帖子。我看到的唯一区别是数据id值现在没有硬编码,但这如何解决问题?