Рекурсивная вложенная таблица ant design не работает

Я хочу использовать рекурсивную вложенную таблицу в структуре компонентов реакции: antd, но это не работает так:

import {Table, Badge, Menu, Dropdown, Icon} from 'antd';
export  default  class TreeTable extends React.Component {

    constructor(props) {
        super(props)
        this.state = {
            dataSource: [],
            nestedData: []
        }
    }



    expandedRowRender(e) {

        const nested_source = e.nest_data

        const columns = this.props.nest_columns

        return (
            <Table
                columns={columns}
                dataSource={nested_source}
                pagination={false}
                expandedRowRender={(e)=>{this.expandedRowRender(e)}}
                title={()=>"一级岗位列表"}
                showHeader={false}
                size={"middle"}
            />

        );
    }

    render() {
        const data_source = this.props.data_source.map((v, i)=> {
            return {key: i, ...v}
        })

        return (
            <div >
                <Table
                    className="components-table-demo-nested"
                    columns={this.props.columns}
                    expandedRowRender={(e)=>::this.expandedRowRender(e)}
                    dataSource={data_source}
                />
                { this.props.children }
            </div>
        )
    }


}

ничего не произошло, когда я нажал кнопку «плюс» второго уровня на столе, как это решить? это ошибка?


person junk    schedule 12.06.2017    source источник


Ответы (1)


в первую очередь я хотел бы ответить на ваш первый вопрос

это ошибка?

Нет, это не ошибка. Это происходит, когда вы не устанавливаете уникальное значение ключа для каждой строки таблицы. добавьте этот фрагмент кода в оба тега «Таблица».

rowKey = {e => e._id}

ex:-

         <Table
                rowKey = {e=> e._id}
                className="components-table-demo-nested"
                columns={this.props.columns}
                expandedRowRender={(e)=>::this.expandedRowRender(e)}
                dataSource={data_source}
            />
person isuru sampath    schedule 08.12.2017
comment
Вы только что спасли душу сегодня! Спасибо, что нашли время оставить этот комментарий, я сошел с ума по этому поводу. - person Cristiano Fontes; 10.10.2020