循环仅将最后一个元素添加到数组

时间:2020-05-09 16:18:53

标签: javascript reactjs

为什么只显示最后一项而不是全部? history2表仅显示最后一个元素,而条件包含更多元素

state = {
history2:[]
}

 for (const point of this.state.idRt) {
      if (id === point.RouteId) {
        this.setState({
          history2: {
            Name: point.Name,
          }
        })
      }
    }

1 个答案:

答案 0 :(得分:0)

您应该将其附加到所拥有的状态对象上,而不是替换它。像这样的东西

state = {
  history2: [],
};

for (const point of this.state.idRt) {
  if (id === point.RouteId) {
    this.setState({
      history2: [
        ...this.state.history2,
        {
          Name: point.Name,
        },
      ],
    });
  }
}