получить данные JSON из URL-ответа - проблемы с форматированием - PullRequest
0 голосов
/ 05 ноября 2018

Я увидел этот полезный код в выпуске:

getSchemaFromApiAsync() {
    return fetch('https://facebook.github.io/react-native/movies.json')
      .then(response => response.json())
      .then(responseJson => {
        return responseJson;
      })
      .catch(error => {
        console.error(error);
      });
  }

У меня есть проблема: я хочу получить мой responseJson как объект js или преобразовать его в объект js. Я пытался JSON.stringify, но не работает. Есть идеи?

Ответы [ 3 ]

0 голосов
/ 05 ноября 2018

Попробуйте использовать синтаксис ES6, надеюсь, у вас есть новейшие библиотеки для поддержки этого.

let getSchemaFromApiAsync = () => {
  return new Promise((resolve, reject) =>  {
     fetch('https://facebook.github.io/react-native/movies.json')
      .then(response => resolve(response.json()))
      .catch(error => {
        console.error(error);
        reject(error);
      });
    })
  }

  let main = async () => {
    let res = await getSchemaFromApiAsync();
    console.log("res", res);
  };

  main();
0 голосов
/ 05 ноября 2018

Попробуйте изменить его в соответствующем API для отдыха. Используйте json.stringyfy в вашем файле nodejs. Установите свой ответ json в область.

0 голосов
/ 05 ноября 2018

ваше возвращаемое значение - функция обещания

constructor(props) {
    super(props);
    this.state = {};
}

componentWillMount(){
    this.getObject();
}

getObject(){
    return fetch('https://facebook.github.io/react-native/movies.json')
      .then(response => response.json())
      .then(responseJson => {
          this.setState({responseJson : responseJson});
         return responseJson;
      })
      .catch(error => {
        console.error(error);
      });
}

Теперь ваше состояние установлено. Вы можете обращаться к этой переменной состояния в любое время (другой компонент также).

...