表创建更多表而不是新行

时间:2019-04-25 21:49:22

标签: reactjs bootstrap-4 react-bootstrap react-bootstrap-table

我正在尝试使用单个对象数组填充我的React Bootstrap表数据。我想为每个obj创建一个新行,并为每个列创建一个表头,但是相反,它正在创建新表。

我试图将map函数(“ this.props.data.map((person,key)=>”)移入调用/渲染的位置以及其他几个地方,所以它不会多次调用componenet ,但是我在语法上遇到了麻烦。

const columns = [{
    dataField: 'id',
    text: 'ID'
}, {
    dataField: 'firstName',
    text: 'First Name'
}, {
    dataField: 'lastName',
    text: 'Last Name',
    sort: true
}, {
    dataField: 'birthDate',
    text: 'Birth Date'
}, {
    dataField: 'email',
    text: 'Email'
}];

    render(){
        return(
            <div>
                {this.props.data.map((person, key) =>
                    <div key={key} >
                        <BootstrapTable
                            hover
                            condensed={true}
                            bootstrap4={true}
                            keyField='id'
                            data={person}
                            columns={columns}
                            />
                    </div>
                )}
            </div>
        );
    }

1 个答案:

答案 0 :(得分:2)

您不需要映射整个数组。您需要做的就是将this.props.data放在data字段中。

data={this.props.data}

然后,只要键即firstName, lastName等在对象中,它就应该为您打印表格。

这是假设您的数组如下所示:

[{firstName: 'Bob', lastName: 'Sagget',...}, {firstName: 'George', lastName: 'Bobbish',... }]

完整的返回语句:

return(
        <div>
             <BootstrapTable
              hover
              condensed={true}
              bootstrap4={true}
              keyField='id'
              data={this.props.data}
              columns={columns}
              />
        </div>
    );