在多个函数中使用变量 - 反应原生

时间:2018-02-15 20:25:36

标签: javascript react-native

我希望获取一些数据,然后使用它来获取其他一些数据,第一个api返回一些新闻文章,我正在做一个for循环来访问描述并将其保存为{{ 1}},我希望然后使用该数组发出另一个获取请求,问题是我只能在第一个函数中访问array,我的代码看起来像这样:

array

我可以在组件中使用makeRemoteRequest = () => { const url = `https://url.com`; fetch(url) .then(res => res.json()) .then(res => { maindata = res.articles var array = [] for(let i in maindata){ array.push(maindata[i].description) } console.log(array) // Working this.setState({ data: res.articles, }); }) console.log(array) // Not working console.log(this.state.data) // Not working }; 并在列表视图中呈现它。

第二功能:

this.state.data

我的最后一次尝试是将所有内容混合在一个功能中,因为它是所有的承诺,没有工作

  fetch('url', {
    method: 'POST',
    headers: {
      Accept: 'application/json',
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
       'api_key': "81a354b",
       'data': array
    }),
  })

2 个答案:

答案 0 :(得分:0)

首先在获取范围之外定义变量。 let array = [];

然后在fetch中:

array.push()

答案 1 :(得分:0)

这是什么输出? (你可以在你的问题中添加格式化的输出吗?):

fetch(url)
  .then(res => res.json())
  .then(res => return res.articles.map(article => article.description) )
  .then(res => fetch(otherUrl, { descriptions: res }))
  //I assume that result needs to be parsed as json as well
  .then(res => res.json())
  .then(result => {
    conole.log("got results:",results);
  })
  .catch(err =>
    console.warn("something went wrong:",err);
  )