【问题标题】:Table creating more table rather than a new row表创建更多表而不是新行
【发布时间】:2019-09-15 09:45:23
【问题描述】:

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

我试图将地图函数 ("this.props.data.map((person, key) =>") 移动到调用/渲染的地方和其他几个地方,所以它不会多次调用组件,但我很难使用语法。

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>
        );
    }

【问题讨论】:

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


【解决方案1】:

您不需要通过数组进行映射。您只需将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>
    );

【讨论】:

  • 谢谢。你说得对,我只要把 this.props.data 放到 data 里就行了!
  • 没问题。我不得不与这个组件进行激烈的斗争。祝你好运!
  • 不错!这正是我所怀疑的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-03
  • 2014-11-02
  • 1970-01-01
  • 1970-01-01
  • 2016-01-30
相关资源
最近更新 更多