【问题标题】:How to display data dynamically with ant design tables如何用ant设计表动态显示数据
【发布时间】:2021-02-13 07:37:21
【问题描述】:

首先请我的 javascript 技能水平不好,但是在这里...我有一个从 ant.design 获得的表,我正在尝试用 react 构建一个前端,所以我想从我的表上显示一些数据数据库,但我发现它有,因为要设置 ant 设计表。

这是代码

class OrderSummary extends React.Component {
  state = {
    data: null,
    error: null,
    loading: false
  };

  componentDidMount() {
    this.handleFetchOrder();
  }

  handleFetchOrder = () => {
    this.setState({ loading: true });
    authAxios
      .get(orderSummaryURL)
      .then(res => {
        this.setState({ data: res.data, loading: false });
      })
      .catch(err => {
        // if (err.response.status === 404) {
        //   this.setState({
        //     error: "You currently do not have an order",
        //     loading: false
        //   });
        // } else {
          this.setState({ error: err, loading: false });
        // }
      });
  };

    render() {
      const columns = [
        {
          title: 'Number',
          dataIndex: 'number',
          key: 'number',
          render: text => <a>{text}</a>,
        },
        {
          title: 'Event Name',
          dataIndex: 'name',
          key: 'name',
        },
        {
          title: 'Event Price',
          dataIndex: 'price',
          key: 'price',
        },
        {
          title: 'Quantity',
          dataIndex: 'quantity',
          key: 'quantity',
        },
        {
          title: 'Total',
          dataIndex: 'total',
          key: 'total',
        },
      
      ];

      const datasource = 
        {data.order_items.map((orderItem, i) => {
        return (
          [
              {
                key: {orderItem.id},
                number: {orderItem.item.title} -{" "},
                name: 32,
                price: 'NGN' {orderItem.item.price} ,
                quantity: {orderItem.quantity},
                total: {data.total},
                
              },
              // {
              //   key: 1,
              //   name: 'John Brown',
              //   age: 32,
              //   address: 'New York No. 1 Lake Park',
              //   tags: ['nice', 'developer'],
              // },
      ];

        return (
            <Layout>
            <div>
                 <PageHeader
                    className="site-page-header"
                    onBack={() => null}
                    title="Order Summary"
                />
                <Table columns={columns} 
                
                dataSource={datasource} />
            </div>
            </Layout>
        )
    }
};

export default OrderSummary;

注意我注释掉的地方,这部分工作完美,因为它来自 ant.design

这是我不断收到的错误

Failed to compile
./src/containers/OrderSummary.js
  Line 95:14:  Parsing error: Unexpected token, expected ","

  93 | 
  94 |       const datasource = 
> 95 |         {data.order_items.map((orderItem, i) => {
     |              ^
  96 |         return (
  97 |           [
  98 |               {

请帮忙。

【问题讨论】:

    标签: javascript arrays reactjs django antd


    【解决方案1】:

    首先

    您的datasource 似乎没有正确关闭。

    在你的] 之后你需要 ) } ) } ;

    第二

    您必须在data 中添加order_items state,因为它是空的并且handleFetchOrder 是异步的。在你想要渲染它的时候会产生一个错误,因为你试图迭代一个不存在的属性。

    以下是您可以尝试的示例:

    在您的州声明中:

    state = {
          data: {
              order_items: []
          },
          error: null,
          loading: false
    };
    

    在您的渲染函数中:

    添加一个常量来获取你的状态值:

    const data = this.state.data;
    const datasource = { data.order_items.map((orderItem, i) => { ... })};
    

    【讨论】:

    • data 来自哪里?您的代码中没有具有此名称的道具、属性或函数。
    • 我已经编辑了问题,请检查并建议。
    • 您必须将data 设置为具有名称为order_items 的空数组属性的对象。
    猜你喜欢
    • 2019-12-04
    • 2023-04-09
    • 2014-02-25
    • 1970-01-01
    • 1970-01-01
    • 2015-12-25
    • 2012-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多