Reactjs 反应';s承诺:如何将数组转换为json
我有一个从存储在数组中的API获取的页面列表。我想将数组转换为JSON数据,以便访问对象并将其存储在状态变量中 我尝试过通过promise手动获取数据,但当我将所有内容放入数组时,它不允许我将其转换为JSONReactjs 反应';s承诺:如何将数组转换为json,reactjs,api,react-native,Reactjs,Api,React Native,我有一个从存储在数组中的API获取的页面列表。我想将数组转换为JSON数据,以便访问对象并将其存储在状态变量中 我尝试过通过promise手动获取数据,但当我将所有内容放入数组时,它不允许我将其转换为JSON componentDidMount(){ let allArticles = []; for (let i=10; i>1; i--){ allArticles.push(fetch(BASE_URL + '&a
componentDidMount(){
let allArticles = [];
for (let i=10; i>1; i--){
allArticles.push(fetch(BASE_URL + '&page=' + i));
}
Promise.all(allArticles)
.then(responses => {
console.log(responses);
const processedResponses = [];
responses.map(response => {
processedResponses.push(response);
})
//console.log(processedResponses);
})
//this works
// Promise.all([
// fetch(BASE_URL + '&page=10'),
// fetch(BASE_URL + '&page=9')
// ])
// .then(([response1, response2]) => Promise.all([response1.json(), response2.json()]))
// .then(([data1, data2]) => this.setState({
// loading: false,
// dataSource: data1.articles.reverse()
// }));
每样东西都要做
for (let i=10; i>1; i--){
allArticles.push(fetch(BASE_URL + '&page=' + i).then(res => res.json()));
}
Promise.all(allArticles)
.then(articles => { /* Array of parsed responses here */})
否则,您需要再次使用Promise.all
for (let i=10; i>1; i--){
allArticles.push(fetch(BASE_URL + '&page=' + i));
}
Promise.all(allArticles)
.then(responses => Promise.all(responses.map(res => res.json())))
.then(articles => { /* Array of parsed responses here */})
每样东西都要做
for (let i=10; i>1; i--){
allArticles.push(fetch(BASE_URL + '&page=' + i).then(res => res.json()));
}
Promise.all(allArticles)
.then(articles => { /* Array of parsed responses here */})
否则,您需要再次使用Promise.all
for (let i=10; i>1; i--){
allArticles.push(fetch(BASE_URL + '&page=' + i));
}
Promise.all(allArticles)
.then(responses => Promise.all(responses.map(res => res.json())))
.then(articles => { /* Array of parsed responses here */})
嗨,谢谢你,真管用!我还尝试了.then(([response])=>Promise.all([response.json()]),它也可以工作。现在问题在于将其存储在this.setState变量中,该变量返回“未处理的承诺拒绝:TypeError:undefined不是对象”。Promise不接受此选项。setState?@LeslieYJ
。然后(([response])=>Promise.all([response.json()])
此选项仅适用于单个请求。如果您只有一个请求,则不需要使用Promise.all
。至于错误,很难说没有。你能创建一个吗?没关系,我发现了,这是我的一个错误,因为我忘记了它是一个页面数组中的一个文章数组,我在访问数组之前直接访问了这些文章。谢谢你,伙计,你帮了大忙!干杯,上帝保佑你@很高兴我能帮上忙!:)嗨,谢谢你,真管用!我还尝试了.then(([response])=>Promise.all([response.json()]),它也可以工作。现在问题在于将其存储在this.setState变量中,该变量返回“未处理的承诺拒绝:TypeError:undefined不是对象”。Promise不接受此选项。setState?@LeslieYJ。然后(([response])=>Promise.all([response.json()])
此选项仅适用于单个请求。如果您只有一个请求,则不需要使用Promise.all
。至于错误,很难说没有。你能创建一个吗?没关系,我发现了,这是我的一个错误,因为我忘记了它是一个页面数组中的一个文章数组,我在访问数组之前直接访问了这些文章。谢谢你,伙计,你帮了大忙!干杯,上帝保佑你@很高兴我能帮上忙!:)