У меня проблема с обновлением моего состояния из вложенного вызова axios внутри цикла forEach:
constructor(props) {
super(props);
this.state = {
isLoaded: false,
items: []
};
//Binding fetch function to component's this
this.fetchFiles = this.fetchFiles.bind(this);
}
componentDidMount() {
this.fetchFiles();
}
fetchFiles() {
axios.get('/list')
.then((response) => {
var items = response.data.entries;
items.forEach((item, index) => {
axios.get('/download'+ item.path_lower)
.then((response) => {
item.link = response.data;
})
.catch(error => {
console.log(error);
})
});
this.setState(prevState => ({
isLoaded: true,
items: items
}));
console.log(this.state.items);
})
.catch((error) => {
console.log(error);
})
}
Идея состоит в том, чтобы получить все элементы из Dropbox, используя его API (JavaScript SDK), а затем для каждого элемента, который яТакже необходимо вызвать другую конечную точку API, чтобы получить временную ссылку для загрузки и назначить ее в качестве нового свойства.Только после того, как все элементы получат свои ссылки, я хочу установитьState и визуализировать компонент.Может ли кто-нибудь помочь с этим, я провожу уже несколько часов, борясь с обещаниями: S