DIV onClick传递数组在ReactJS中起作用

时间:2019-04-24 18:18:02

标签: javascript reactjs

我遇到以下错误

  

未捕获到的不变变量:预期onClick侦听器是一个函数,而是获得了object类型的值。

当我尝试在单击div时将值(数组)传递给函数时。如果无法做到这一点,那么处理此问题的最佳方法是什么?

itemsArray(arr) {
        let items = [];
        let self = this;
        const grouped = this.groupBy(arr, item => item.source);
        grouped.forEach(function(value, key) {

            switch(key.toString().toLowerCase()) {
            case "occ_al": return items.push(<div onClick={self.listAllActivities(value)} className="recentActivityChannels"><img src={occ} width="15" /></div>)
          }

        })
        items.push(<div className="clearFloat"></div>);
        return items;
    }

    listAllActivities(arr){
        let items = [];
        var self = this;
        const grouped = this.groupBy(arr, date => getDateServiceTab(date.date));
        grouped.forEach(function(value, key) {
            value.map((map) => {

                //removed as its not important

        return items;

 }

2 个答案:

答案 0 :(得分:1)

您正在执行函数listAllActivities,然后该函数返回一个对象。您可以使用箭头功能来解决此问题:

onClick={() => self.listAllActivities(value)}

答案 1 :(得分:0)

使用箭头函数调用的另一种方法

onClick={() => function()}

是将其定义为箭头功能

itemsArray = (arr) => {
      ...
}