【问题标题】:DIV onClick Pass Array to Function in ReactJSDIV onClick 将数组传递给 ReactJS 中的函数
【发布时间】:2019-04-24 18:18:01
【问题描述】:

我收到以下错误

未捕获的不变违规:预期 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;

 }

【问题讨论】:

    标签: javascript reactjs


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      onClick={() => function()}
      

      是将其定义为箭头函数

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-01-08
        • 1970-01-01
        • 1970-01-01
        • 2017-11-18
        • 1970-01-01
        • 1970-01-01
        • 2017-02-05
        相关资源
        最近更新 更多