javascript - ReactJS 获取数组的每个值

标签 javascript reactjs

我有一个多选

enter image description here

选择将值保存到以逗号分隔的字符串中,所以我使用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)}));
      }
    }

任何帮助表示赞赏!谢谢

最佳答案

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

编辑: 现在明白了问题所在,你可以改变

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

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

然后它就会如你所期望的那样工作。

关于javascript - ReactJS 获取数组的每个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50878934/

相关文章:

javascript - 处理 'onkeydown'事件

php - 管理面板 cms 的裁剪工具

javascript - 使用 getElementById 更改样式背景属性

reactjs - react 获取数据并呈现错误(如果有)

javascript - ReactJS:单击按钮下载 CSV 文件

javascript - 如何在 react js中单击按钮或图标单击打开日期选择器

javascript - 创建一个 debounced 函数,在搜索时延迟调用 func

javascript - 营业时间 javascript 脚本

javascript - Sparx EA - 导入关系或 SQL 查询以修改连接表

json - 使用 axios.get 渲染 json 数据