import React from 'react'import{ Table, Badge, Menu, Dropdown, Space, Switch } from 'antd';import{ DownOutlined } from '@ant-design/icons';
const { Column }= Table;export default class SubTable extends React.Component {
state ={
firstRow: false,
secondrow: false,
dataSource: [{
key: "0",
name: "Edward King 0",
expandable: false},
{
key: "1",
name: "Edward King 1",
expandable: false}]};
handleChnage = key =>{let k = parseInt(key);let data = this.state.dataSource;let value = data[k].expandable;
data[k].expandable =!value;
this.setState({
dataSource: data
});};
render(){
const { dataSource }= this.state;return(<Table
bordered
dataSource={dataSource}
pagination={false}
expandRowByClick={true}
expandable={{
expandedRowRender: record =>(<p style={{ margin: 0 }}>{"Here is expandable row"}</p>),
rowExpandable: record => record.expandable
}}><Column title="name" dataIndex="name" width="30%" editable={true} /><Column
align="right"
render={(text, record, index)=>{return<Switch onChange={()=> this.handleChnage(record.key)} />;}}
/></Table>);}}
或者
import React from 'react'import{ Table, Badge, Menu, Dropdown, Space, } from 'antd';
const columns =[{ title: "Name", dataIndex: "name", key: "name"},
{ title: "Age", dataIndex: "age", key: "age"},
{ title: "Address", dataIndex: "address", key: "address"}];
const data =[{
key: 1,
name: "John Brown",
age: 32,
address: "New York No. 1 Lake Park",
description:
"My name is John Brown, I am 32 years old, living in New York No. 1 Lake Park."},
{
key: 2,
name: "Jim Green",
age: 42,
address: "London No. 1 Lake Park",
description:
"My name is Jim Green, I am 42 years old, living in London No. 1 Lake Park."},
{
key: 3,
name: "Joe Black",
age: 32,
address: "Sidney No. 1 Lake Park",
description:
"My name is Joe Black, I am 32 years old, living in Sidney No. 1 Lake Park."}];function customIcon(props){let record = props.record;return<a onClick={e => props.onExpand(record, e)}>{record.name}</a>;}export default class SubTable extends React.Component {
render(){return(<Table
columns={columns}
expandedRowRender={record =>(<p style={{ margin: 0 }}>{record.description}</p>)}
dataSource={data}
// expandRowByClick={true}
expandIcon={customIcon}
/>);}}