初识react(12)——如何在 基于antd的表格中 渲染 接口获取的数据

方法一:

代码如下:

import React,{Component}from 'react'
import {Table} from 'antd';

import http from "../../server"  //这里是我跨域所用到的

export default class School extends Component {

    state = {   
        data:[]
    };

    //发送get请求获取数据
    async getList(){
        const res = await http.get('/admin/school/xxx','');
        console.log(res);
        if(res.status == 200){
            console.log(res.data.data);
            const data = res.data.data;
            this.setState({
                data:data
            })
        }
    }

    componentDidMount() {
        this.getList();
    }

    render(){
        //定义表头,一般放在render()中
        const columns = [
            {
                title:'编号',         //列名称
                dataIndex:'id',      //数据源的字段名
                key:'id'
            },
            {
                title:'名称',
                dataIndex:'sName',
                key:'name'
            },
            {
                title: '操作',
                key: 'operation',
                render: (text, record) => (
                    <span>
                        <a>see</a>
                        <a style={{color: '#009688'}}>Edit</a>
                        <a style={{color: 'red'}}>Delete</a>
                    </span>
                ),
            }
        ];

        return(
            <div className='main'>
                <div className='all-content'>
                {/*这几个class是我为了搜索框等的布局设置的,不影响表格。大家根据自己情况设置*/}
                    <div className='content'>
                        <div className='table'>
                            <Table columns={columns} dataSource={this.state.data} />
                        </div>
                    </div>
                </div>
            </div>
        )
    }
}

效果图如下:

在这里插入图片描述

方法二:

import React,{Component}from 'react'
import {Table, Space} from 'antd';

import http from "../../server"  //这里是我跨域所用到的

const { Column} = Table;

export default class School extends Component {

    state = {
        data:[]
    };
    
    //发送get请求获取数据
    async getList(){
        const res = await http.get('/admin/school/xxx','');
        console.log(res);
        if(res.status == 200){
            console.log(res.data.data);
            const data = res.data.data;
            this.setState({
                data:data
            })
        }
    }

    componentDidMount() {
        this.getList();
    }

    render(){
     
        return(
            <div className='main'>

                <div className='all-content'>
                 {/*这几个class是我为了搜索框等的布局设置的,不影响表格。大家根据自己情况设置*/}                  
                    <div className='content'>
                        <div className='table'>                            
                            <Table dataSource={this.state.data}>
                                <Column title="编号" dataIndex="id" key="id" />
                                <Column title="name" dataIndex="sName" key="name" />
                                <Column
                                    title="Action"
                                    key="action"
                                    render={(text, record) => (
                                        <Space size="middle">
                                            <a>see</a>
                                            <a style={{color:'#009688'}}>Edit</a>
                                            <a style={{color:'red'}}>Delete</a>
                                        </Space>
                                    )}
                                />
                            </Table>
                        </div>
                    </div>
                </div>
            </div>
        )
    }
}

效果图如下:

在这里插入图片描述

antd的表格有很多种,不同表格代码也就有不同 能渲染出接口获取的数据 的写法,根据自己喜好选择即可。
上述代码我用到了跨域和axios的封装,想了解的可以看我下面两个博客:
初识react(6)——多种方法实现跨域请求
初识react(9)——实现 axios 的封装使用
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
React Antd,可以使用`form`属性将`Modal`组件的表单与父组件进行关联,然后在`Modal`的确认按钮上通过`form.submit()`方法来获取表单数据。 具体实现步骤如下: 1. 在`Modal`组件添加`form`属性,使表单与父组件进行关联: ```jsx import { Form, Input, Modal } from 'antd'; const MyModal = ({ visible, onCancel, onOk, form }) => { const { getFieldDecorator } = form; return ( <Modal visible={visible} onCancel={onCancel} onOk={onOk} > <Form> <Form.Item label="Username"> {getFieldDecorator('username', { rules: [{ required: true, message: 'Please input your username!' }], })(<Input />)} </Form.Item> <Form.Item label="Password"> {getFieldDecorator('password', { rules: [{ required: true, message: 'Please input your password!' }], })(<Input.Password />)} </Form.Item> </Form> </Modal> ); }; export default Form.create()(MyModal); ``` 2. 在`Modal`组件的确认按钮上通过`form.submit()`方法来获取表单数据: ```jsx import { Form } from 'antd'; import MyModal from './MyModal'; const MyParentComponent = () => { const handleSubmit = (e) => { e.preventDefault(); const { form } = myFormRef.current; form.validateFields((err, values) => { if (!err) { console.log(values); // 输出表单数据 form.resetFields(); } }); }; const myFormRef = useRef(null); return ( <div> <button onClick={() => myModalRef.current.showModal()}>Open Modal</button> <MyModal wrappedComponentRef={(form) => myFormRef.current = form} visible={visible} onCancel={() => setVisible(false)} onOk={handleSubmit} /> </div> ); }; export default MyParentComponent; ``` 在上面的代码,我们通过`form.validateFields(callback)`方法来校验表单数据,并且如果校验通过,就可以通过`values`参数获取到表单数据。同时,我们也可以通过`form.resetFields()`方法来重置表单数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值