为什么我的数组变量在setState中不起作用,但是当我明确声明变量时它起作用了吗?

时间:2019-05-19 03:26:19

标签: javascript reactjs

我正在创建一个需要大量数据操作的React应用程序,并在单击按钮时尝试使用某些数据设置setState,因此这是唯一呈现的数据。一切正常,没有错误,但是状态没有改变。当我对数组变量中的数据进行硬编码时,它的确会将状态更改为我的硬编码内容。此功能已添加到“点击”按钮。当我在createClicks函数中尝试一条简单的警报消息时,该按钮的功能将起作用。

我尝试过更改变量的范围,但这似乎无济于事。我认为这可能与处理数据未运行的内部函数有关。

createClicks = () => {
    const clicksArr = [];
    const groupByProperties = ['date_start'];
    const groupResult = groupBy({ Group: this.state.data, By: groupByProperties });
    for (let i = 0; i < groupResult.length; i++) {
    let clicks = groupResult[i].reduce((acc, curr) => acc + parseFloat(curr.clicks), 0);
    clicksArr.push(clicks);
    };
    this.setState({
      series: [
        {
          name: "Clicks",
          data: clicksArr,
        },
      ]
    })

  };

for循环和reduce函数会弹出[17894、18159、16696、14089、12919、12457、14783],但是当我设置“ data:clicksArr”时,状态并没有出现。如果我对“ const clicksArr = [17894,18159,16696,14089,12919,12457,14783]”进行硬编码,那么它将起作用。

0 个答案:

没有答案