简体   繁体   English

无法在React.js中获取

[英]Fetch not working in React.js

I am trying to fetch the message outputted by the following endpoint: 我正在尝试获取以下端点输出的消息:

http://helloworld-env-2.5fwknpgms8.us-east-2.elasticbeanstalk.com/ http://helloworld-env-2.5fwknpgms8.us-east-2.elasticbeanstalk.com/

I just ran a create-react-app to create my application and changed the code in the App.js file 我只是运行了一个create-react-app来创建我的应用程序,并更改了App.js文件中的代码

New Code: 新代码:

import React, { Component } from 'react';
import './App.css';

class App extends React.Component {
  constructor(props){
    super(props);
    this.state = {
       error: null,
       isLoaded: false,
       items: ""
    };
  }

  componentDidMount(){
    console.log("mounting component");
    fetch("http://helloworld-env-2.5fwknpgms8.us-east-2.elasticbeanstalk.com/")
    .then((result) => {
      this.setState({
        isLoaded: true,
        items: result
      });
    });
  }

  render() {
    console.log("rendering");
    const isLoaded = this.state.isLoaded;
    if(isLoaded){
      return (<div> {this.state.items} </div>);
    }
    else{
    return (
      <div>loading</div>
    );
    }
  }
}

export default App;

I keep getting the loading message. 我不断收到加载消息。

You need to parse the response from fetch: 您需要从提取中解析响应:

  componentDidMount(){
    fetch("http://helloworld-env-2.5fwknpgms8.us-east-2.elasticbeanstalk.com/")
    .then((result) => result.json()) // here
    .then((result) => {
      const { a } = result; // access 'a' key from response
      this.setState({
        isLoaded: true,
        items: a
      });
    });
  }

Here are the docs . 这是文档

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM