Я получаю данные из API, а затем использую arr.map () для фильтрации данных * (API возвращает ненужные свойства)
Это работает:
fetchTable() {
const url = 'http://localhost:8000/issues/assigned/';
const value = this.state.selectedOption;
const string = url+value;
fetch(string)
.then(function(response) {
return response.json();
})
.then((myJson) => this.setState({data: myJson.issues}));
}
const filteredResult1 = this.state.data.map(item => (
{
name: item.fields ? item.fields.assignee.name : '',
id: item.id,
key: item.key,
timespent: item.fields ? this.timeConvert(item.fields.timespent) : '',
project: item.fields ? item.fields.project.name : '',
status: item.fields ? item.fields.status.name : '',
created: item.fields ? item.fields.created : '',
resolution: item.fields ? item.fields.resolutiondate : ''
}
));
Но теперь мне нужно setState несколько раз, так что я могу визуализировать таблицу для каждого массива с отфильтрованными данными, но результат карты всегда не определен!
.then((myJson) => this.setState({data: [...this.state.data, myJson.issues]}));
Это не работает:
fetchTable() {
const url = 'http://localhost:8000/issues/assigned/';
const value = this.state.selectedOption;
const string = url+value;
fetch(string)
.then(function(response) {
return response.json();
})
.then((myJson) => this.setState({data: [...this.state.data, myJson.issues]}));
}
var result = this.state.data.map((item)=>{ return {id:item.id, example: item.example}; });
console.info(result)


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


let array1 = [
1,2,3
];
let array2 = [
4,5,6
]
// ...array1 is destructuring array1
// and which leads to an unexpected result
console.info([...array1, array2]);Измените эту строку
.then((myJson) => this.setState({data: [...this.state.data, myJson.issues]}));
к этому
.then((myJson) => this.setState({
data: this.state.data.concat(myJson.issues)
}));
В прилагаемом коде видно, что полученный массив не соответствует вашим ожиданиям.
Тогда не могли бы вы предоставить образцы данных для this.state.data и myJson.issues в [...this.state.data, myJson.issues]
У меня есть множественный выбор, как вы можете видеть const value = this.state.selectedOption;, изначально this.state.data пуст! затем для каждой выбранной опции он будет извлекать данные в this.state.data!
Не могли бы вы предоставить this.state.data и myJson.issues в [...this.state.data, myJson.issues] со второго раза, когда вы запустите запрос.
извините, но я не понимаю! Я загрузил изображение в третий раз, выполняя запрос.
Отсутствие возможности увидеть структуру возвращенных данных и данных merged не помогает мне вам помочь. Насколько я могу судить, с предоставленными данными вы не объединяете текущие данные с вновь полученными данными должным образом. Это создает несогласованность в новых данных состояния, которые вы сопоставляете. Если какой-либо из item.id или item.example в var result = this.state.data.map((item)=>{ return {id:item.id, example: item.example}; }) не определен, это может привести к тому, что карта вернет undefined.
Привет @Vasile Florin Vilsan! Я делал это раньше, но я не хочу объединять их, так как я буду отображать таблицу для каждого массива!