如何使用gatsby-ant-plugin从api获取表数据

时间:2019-02-12 12:55:06

标签: javascript reactjs gatsby

我已经使用ant表创建了一个简单表。我试图从API获取值,但出现此异常:

  

无法获取未定义或空引用的属性“数据”

我的示例代码是

import React from "react"
import { Table } from 'antd';

class StudentTable extends React.Component {

  componentDidMount() {
    fetch("https://randomuser.me/api/?results=200&nat=us")
      .then(Response => Response.json())
      .then(findresponse => {
        console.log(findresponse.results);
        this.setState({
          data: findresponse.result

        });
        console.log(this.state.data);
      });
  }

  render() {
    const columns = [
      {
        title: 'Gender',
        dataIndex: 'gender',
        key: 'gender',
      }, 
      {
        title: 'Email',
        dataIndex: 'email',
        key: 'email',
      }
    ]
    const data = []
    return(
      <div>
        <h2>Student Data</h2>
        <Table 
          dataSource={this.state.data}
          columns={columns}/>   
        </div>
    )
  }
}

export default StudentTable

1 个答案:

答案 0 :(得分:1)

您没有在组件中初始化状态,因此在第一个渲染中this.statenull

如果您使用的是盖茨比,则可能会初始化状态

class StudentTable extends React.Component {
  state = { data: ... };
  componentDidMount() { ... }
  ...
}

或在构造函数中这样做

class StudentTable extends React.Component {
  constructor(props) {
    super(props)
    this.state = { data: ... }
  }
  componentDidMount() { ... }
  ...
}