如何使用React的访存将数据存储到变量中?

时间:2018-10-08 00:01:58

标签: reactjs

我正在使用React,我需要将一些Api请求存储到变量中,以便可以进行一些修改。

我想做这样的事情:

function getMovies() {

var moviesArr = '';
return fetch('https://api.themoviedb.org/3/movie/now_playing?api_key=4344343' +
'd61a2e5')
.then((response) => response.json())
.then((json) => moviesArr = json);

  }

 const currentMoviesArray = getMovies() // Then to recieve the movies data

所以const currentMoviesArray最终将把我带回的数据

2 个答案:

答案 0 :(得分:0)

而不是将其存储到变量中。您可以将响应设置为一个状态变量,以便可以在组件中的任何位置使用它。

function getMovies() {
  return fetch('https://api.themoviedb.org/3/movie/now_playing?api_key=4344343' +
  'd61a2e5')
 .then((response) => response.json())
 .then((json) => this.setState({moviesArr:json});
}

答案 1 :(得分:-1)

函数getMovies()返回一个Promise。因此,您可以在currentMoviesArray处理程序中设置then()的值,也可以使用异步/等待来重构函数,该等待等待一个诺言的建立并返回结果,请参见以下两个选项:

选项1:

const currentMoviesArray = [];

function getMovies() {
  fetch('https://api.themoviedb.org/3/movie/now_playing?api_key=4344343' +
  'd61a2e5')
  .then((response) => response.json())
  .then((movies) => currentMoviesArray.push(movies));
}

选项2:

async function getMovies() {
  await fetch('https://api.themoviedb.org/3/movie/now_playing?api_key=4344343' + 'd61a2e5')
    .then((response) => response.json());
}

const currentMoviesArray = getMovies();