代码之家  ›  专栏  ›  技术社区  ›  letsCode

DIV onClick将数组传递给ReactJS中的函数

  •  0
  • letsCode  · 技术社区  · 5 年前

    未捕获的不变冲突:应为 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 回复  |  直到 5 年前
        1
  •  1
  •   isherwood    5 年前

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

    onClick={() => self.listAllActivities(value)}
    
        2
  •  0
  •   Marwane Boudriga    5 年前

    onClick={() => function()}
    

    将其定义为箭头函数

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