我有一个多选
选择将值保存到以逗号分隔的字符串中,所以我使用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/