[英]ReactJS fetch for each value of array
我有多项选择
选择将值保存到以逗号分隔的字符串中,所以我使用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());
那么它将按您期望的那样工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.