Reactjs 反应';s承诺:如何将数组转换为json

Reactjs 反应';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

我有一个从存储在数组中的API获取的页面列表。我想将数组转换为JSON数据,以便访问对象并将其存储在状态变量中

我尝试过通过promise手动获取数据,但当我将所有内容放入数组时,它不允许我将其转换为JSON

      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
。至于错误,很难说没有。你能创建一个吗?没关系,我发现了,这是我的一个错误,因为我忘记了它是一个页面数组中的一个文章数组,我在访问数组之前直接访问了这些文章。谢谢你,伙计,你帮了大忙!干杯,上帝保佑你@很高兴我能帮上忙!:)