在React Js中为数组索引添加自定义onClick事件侦听器

时间:2018-01-28 11:37:17

标签: javascript arrays reactjs

我有一个全局定义的数组,试图将自定义事件监听器添加到数组

中的每个元素
var item = ["A", "B", "C", "D"]
export default class Test extends React.Component{
   componentWillMount() {
      for (var i = 0; i < item.length; i++) {
         item[i].addEventListener("click",this.bindClick.bind(this,i));
      }
   }

    bindClick(i){
        console.log("check", i)
    }
}

我已尝试过上面的代码,但我收到此错误

Uncaught TypeError: item[i].addEventListener is not a function

请帮助我,提前致谢;

1 个答案:

答案 0 :(得分:0)

您无法为项添加偶数侦听器,因为它们是字符串类型=&gt;没有'addEventListener'方法。但是您可以使用React元素包装数组元素,您可以轻松地将事件侦听器绑定到:

export default class Test extends React.Component {
    constructor() {
        super(props);

        this.bindClick = this.bindClick.bind(this);
    }

    bindClick() {
        console.log(“hello!”)
    }

    render() {

        const arrayItems = [
            <div key=“0” onClick={this.bindClick}>A</div> ,
            <div key=“1” onClick={this.bindClick}>B</div>
        ];

        return arrayItems;
    }
}

因此,您的组件将如下所示:

boto3