Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
367 views
in Technique[技术] by (71.8m points)

reactjs - Axios gets undefined

I have React component FetchQoute which is supposed to get response from the provided URL, but it shows undefined instead ?

class FetchQuote extends Component {
  constructor(props) {
    super(props);    
    this.state = {
      jokes: []
    };    
  }

  componentDidMount() {
    console.log(res.value); //undefined
    axios.get('https://api.icndb.com/jokes/random')
      .then((res) => {       
        this.setState({data:res.value.joke});//error TypeError: Cannot read property 'joke' of undefined
      })

  }

}

That URL can be easily tested in browser to return JSON data correctly, including res.value.joke

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

What's the JSON response look like in the browser? axios returns response data under the data attribute.

For example if your JSON response looks like:

{ "value": 
    { "joke": "lol"} 
}

Then you would access it like

axios.get('https://api.icndb.com/jokes/random')
      .then((response) => {       
        console.log(response.data.value.joke);
      })

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...