我的api可以读,但我不能在react.js中输出

时间:2017-05-09 11:03:08

标签: asp.net api reactjs web

我认为问题是价值仍为空我需要设定价值,但我不知道如何。

constructor() {
    super();
    this.state = {
      jsonReturnedValue: null
    }
  }

在这个区域我将值设置为null并尝试将其提取给我的反应但是当我只运行员工列表时#34;可见

fetch("http://localhost:5118/api/employeedetails/getemployeedetails")
    .then(handleErrors)
    .then(response => response.json()) .then(json => {
        this.setState({ jsonReturnedValue: response.results });
    }).catch(function(error) {
        console.log(error);
    });

    }
    }

render() {
    return(
        <div>
        <h1> Listof Employees </h1>
          <h1>{ this.state.jsonReturnedValue }</h1>
        </div>

3 个答案:

答案 0 :(得分:0)

问题是response.results因为response调用在第三次then调用中不可用,只有第二次。{/ p>

尝试:

fetch("http://localhost:5118/api/employeedetails/getemployeedetails")
    .then(handleErrors)
    .then(response => response.json()) 
    .then(json => {
        this.setState({ jsonReturnedValue: json.results });
    }).catch(function(error) {
        console.log(error);
    });

答案 1 :(得分:0)

使用axios进行http请求。然后检入然后使用console.log(响应);响应来自api或不是

答案 2 :(得分:0)

fetch功能是否保留在componentDidMount()?像这样:

componentDidMount() {
  fetch('http://localhost:5118/api/employeedetails/getemployeedetails')
  .then(resp => resp.json())
  .then((resp) => {
    console.log(resp);
    this.setState({jsonReturnedValue: JSON.stringify(resp)});
  }).catch(function(error) {
    console.log(error);
  });
}

请注意this.setState({jsonReturnedValue: JSON.stringify(resp)}) =&gt;当您只想转储它并查看时,必须使用resp的字符串化版本。 (因为在render()中,您刚刚返回<h1>{ this.state.jsonReturnedValue }</h1>

但是,您可以循环(可能使用.map)jsonReturnedValue并正确呈现您的每位员工,然后请删除JSON.stringify