在循环中创建元素时如何正确设置键

How to set the key properly when creating the elements in loop

无法弄清楚为什么我会收到此警告:

"Warning: Each child in an array or iterator should have a unique "key" prop. Check the top-level render call using BootstrapTable."

我的代码:

import React from 'react';
import { BootstrapTable, TableHeaderColumn } from 'react-bootstrap-table';

const data = [
  {id: 1, name: 'Item name 1', price: 100},
  {id: 3, name: 'Item name 3', price: 55},
  {id: 2, name: 'Item name 2', price: 100}
];

const cols = Object.keys(data[0]);

export default () => {
  return (
    <BootstrapTable data={data}>          
      {cols.map(name => {
        let key = name === 'id' ? true : false;
        return (
          <TableHeaderColumn dataField={name} isKey={key}>
            {name}
          </TableHeaderColumn>
        );
      })}
    </BootstrapTable>
  );
};`

问题是 React 无法识别您的 components.So 您必须给他们一些 identification.The 最简单的方法是传递索引。

当您执行 map() 时,您可以从 array.And 中获取项目及其位置,该位置传递给循环内的顶级组件

export default () => {


return (
    <BootstrapTable data={data}>          
      {cols.map((name,i) => {
        let key = name === 'id' ? true : false;
        return (
          <TableHeaderColumn key={i} dataField={name} isKey={key}>
            {name}
          </TableHeaderColumn>
        );
      })}
    </BootstrapTable>
  );
};`