Как получить данные с поддельного сервера в реагировать на родной? - PullRequest
0 голосов
/ 06 апреля 2020

Я сделал поддельный сервер на своем ноутбуке для получения данных. это данные в нем:

[
  {
    "id": 1,
    "firstName": "Bill",
    "lastName": "Gates",
    "email": "bill@microsoft.com",
    "phone": "1234567898",
    "role": "Accountant",
    "org": "Organization 1"
  },
 {
    "id": 2,
   "firstName": "Mark",
   "lastName": "Zuckerberg",
   "email": "mark@facebook.com",
   "phone": "9876543212",
   "role": "Admin",
   "org": "Organization 1"
  }
]

Я запускаю сервер, используя npm run mock: api

Я хочу извлечь из него данные и отобразить на моем физическом android устройстве (Телефон). Это мой код, который я пробовал:

constructor(props) {
    super(props);

    this.state = {
        users_fake: []
    }
}

componentDidMount() {

    fetch("https://192.168.43.164:4000/users")
    .then(response => response.json())
    .then((responseJson)=> {
        console.log('Response = ' + responseJson);
        this.setState({
            loading: false,
            users_fake: responseJson
        })
    })
    .catch(error=>console.log(error))

и это:

  fetch("http://localhost:4000/users")
        .then(response => response.json())
        .then((responseJson)=> {
        this.setState({
        loading: false,
        users_fake: responseJson
        })
        })
        .catch(error=>console.log(error))

и это:

 fetch('http://localhost:4000/users', {
            method: 'GET'
         })
         .then((response) => response.json())
         .then((responseJson) => {
            console.log(responseJson);
            this.setState({
               users_fake: responseJson
            })
         })
         .catch((error) => {
            console.error(error);
         });

}

Я отображаю данные следующим образом:

 { this.state.users_fake.map((user, index) => { 
     return (
         <Text>{user.firstName} {user.lastName}</Text>
     )
 })}

Но я получаю сообщение об ошибке в консоли:

WARN  Possible Unhandled Promise Rejection (id: 16):
TypeError: Network request failed

Что мне нужно сделать, чтобы получить данные и отобразить их?

1 Ответ

0 голосов
/ 07 апреля 2020

Добавить ошибку броска в функции catch

fetch("https://192.168.43.164:4000/users")
    .then(response => response.json())
    .then((responseJson)=> {
        console.log('Response = ' + responseJson);
        this.setState({
            loading: false,
            users_fake: responseJson
        })
    })
    .catch(error=>{console.log(error);
throw error;})

Надеюсь, это поможет!

...