为了账号安全,请及时绑定邮箱和手机立即绑定

React-Bootstrap-Table:列表中的每个孩子都应该有一个独特的“关键”道具

React-Bootstrap-Table:列表中的每个孩子都应该有一个独特的“关键”道具

Smart猫小萌 2022-12-29 16:37:16
我一直在尝试创建一个 react-bootstrap-table2 但我收到以下警告:列表中的每个孩子都应该有一个独特的“关键”道具。这是我的代码:export const columns = [  {    dataField: "timestamps",    text: "Timestamp",  },];class Table extends Component {  constructor(props) {    super(props);    this.state = { timestamps: [] };  }  componentDidMount() {    const database = db.ref().child("timestamped_measures");    database.on("value", (ts_measures) => {      const timestamps = [];      const columns = [{ dataField: "timestamps", text: "Timestamp" }];      ts_measures.forEach((ts_measure) => {        timestamps.push(ts_measure.val().timestamp);      });      console.log(timestamps);      this.setState((prevState) => {        return { timestamps: [...prevState.timestamps, ...timestamps] };      });    });  }  render() {    return (      <div className="App">        <BootstrapTable          keyField="timestamps"          data={this.state.timestamps.map((item) => ({ item }))}          columns={columns}          pagination={paginationFactory()}        />      </div>    );  }}export default Table;这是包含我要显示的数据列表的控制台所以我的问题是如何给列表中的每个孩子一个唯一的键。
查看完整描述

2 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

您keyField应该设置为dataField(键)而不是timestamps(值)。此外,不需要数据映射。


https://react-bootstrap-table.github.io/react-bootstrap-table2/docs/table-props.html#keyfield-required-string


IE


<BootstrapTable

   keyField="dataField"

   data={this.state.timestamps}

   columns={columns}

   pagination={paginationFactory()}

/>


查看完整回答
反对 回复 2022-12-29
?
湖上湖

TA贡献2003条经验 获得超2个赞

您正在传递整数数组而不是具有“时间戳”属性的对象数组。


export const columns = [

 {

   dataField: "timestamp",

   text: "Timestamp",

 },

];


class Table extends Component {

  constructor(props) {

   super(props);

   this.state = { timestamps: [] };

  }

  

componentDidMount() {

const database = db.ref().child("timestamped_measures");

database.on("value", (ts_measures) => {

  const timestamps = [];

  ts_measures.forEach((ts_measure) => {

    timestamps.push({ timestamp: ts_measure.val().timestamp });

  });

  console.log(timestamps);

  this.setState((prevState) => {

    return { timestamps: [...prevState.timestamps, ...timestamps] };

  });

});

}


 render() {

    return (

      <div className="App">

        <BootstrapTable

          keyField="timestamp"

          data={this.state.timestamps}

          columns={columns}

          pagination={paginationFactory()}

         />

       </div>

    );

    }

  }

 export default Table;


查看完整回答
反对 回复 2022-12-29
  • 2 回答
  • 0 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号