ax ios и извлечение возвращаемых пустых данных ответа в React - PullRequest
1 голос
/ 23 марта 2020

Мой код для вызова API:

import React from 'react';
import ReactDOM from 'react-dom';
import axios from 'axios';
class Hello extends React.Component{
 constructor(props){
    super(props);
    this.state={
        data: "good"
    }
    this.setdata=this.setdata.bind(this);
 }
 setdata(){
    return axios.get("http://52.14.161.145/1").
    then(res=>{
        return res.json;
    });
 }
 componentDidMount(){
    this.setdata().then(res=>{console.log(res);this.setState({data: res})});
 }
render(){
    return (<div><p>{this.state.data}</p></div>);
  }
 }
export default Hello;

Я также знаю о жизненном цикле методов реагирования и асинхронной природе ax ios и выборке вызовов API. Я могу видеть ответ на вкладке сети chrome, но setdata всегда возвращает неопределенное значение. Также обратите внимание, что я запутываю код реагирования и предоставляю его через сервер express.

Как мне решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 23 марта 2020
  • Вы можете достичь таким образом.
  • Лучше установить свой штат, в котором вы получаете ответ.

  • Это не fetch вызов, в axios res.json не требуется.

  • Вы получите свои данные в res.data

     setdata(){
       axios.get("http://52.14.161.145/1").
        then(res=>{
          console.log(res.data);
          this.setState({data: res.data})
         });
       }
    
    componentDidMount(){
     this.setdata();
    }
    
0 голосов
/ 23 марта 2020

Я думаю, что это должно быть

const response = await fetch("http://52.14.161.145/1",{
 headers:{
  "Content-Type":"application/json"
 }
});
console.log(await response.json())
...