ReactJS获取每个数组值

时间:2018-06-15 15:47:23

标签: javascript reactjs

我有一个多选

enter image description here

select将值保存到用逗号分隔的字符串中,所以我使用zag()将字符串转换为数组

this.state.value: zemm,lena

zag()之后:

cleanArray : ["zemm","lena"];

在有一个干净的数组后我试图获取数组中每个值的数据,我的想法是连接所选的每个名字的数据。但是一旦我从数组中删除值,数据就会不断增加。

如果我选择“zemm”,可以说它有10个对象的数组[{...},{...} ..]。然后删除它,我最终得到20个对象,如果我再添加它,30个对象......

 zag(){
    const arrayMessy = this.state.value +'';
    var arraySplit = [];
    arraySplit = arrayMessy.split(',');
    this.setState({cleanArray: arraySplit},() => this.zag2());
  }

  zag2(){
    var arrayLimpo = this.state.cleanArray;
    for (var i = 0; i < arrayLimpo.length; i++) {
      const url = 'http://localhost:8000/issues/assigned/';
      const value = arrayLimpo[i];
      const string = url+value+'&maxResults=5000';
      fetch(string)
      .then(function(response) {
        return response.json();
      })
      //.then((myJson) => this.setState({data: myJson.issues}));
      .then((myJson) => this.setState({ data: this.state.data.concat(myJson.issues)}));
      }
    }

任何帮助表示赞赏!感谢

1 个答案:

答案 0 :(得分:1)

您的代码似乎在行上方有正确但已注释的版本,这会导致问题。您的数据正在成倍增加,因为您将服务器返回的内容连接到已存在的任何内容 - 现有数据数组不会在请求之间清除。

编辑: 现在理解了这个问题,你可以改变

this.setState({cleanArray: arraySplit},() => this.zag2());

this.setState({cleanArray: arraySplit, data: []},() => this.zag2());
然后它会像你期望的那样工作。