antd Table使用列表warning:Each child in a list should have a unique “key“ prop

812 阅读1分钟

项目页面发现有warning信息,如下: 看第一行是一个比价常见的错误信息,那第一反应就是map list应该没有设置key值,当前文件搜索map都设置了,为什么还有warning呢? 在这里插入图片描述 代码按模块注解再结合错误堆栈信息定位到是调用Table导致的问题 ,但是不理解的是,明明Table的每一列都设置了key,那为什么还会报错呢?问题怎么解决?

const columns = [
  { title: 'Name', dataIndex: 'name', key: 'name' },
  { title: 'Age', dataIndex: 'age', key: 'age' },
  { title: 'Address', dataIndex: 'address', key: 'address' },
  {
    title: 'Action',
    dataIndex: '',
    key: 'x',
    render: () => <a>Delete</a>,
  },
];

去官方文档仔细查看了几个demo发现数data都设置了key添加后,warning消失;

const data = [
  {
    key: 1,
    name: 'John Brown',
    age: 32,
    address: 'New York No. 1 Lake Park',
    description: 'My name is John Brown, I am 32 years old, living in New York No. 1 Lake Park.',
  },
  {
    key: 2,
    name: 'Jim Green',
    age: 42,
    address: 'London No. 1 Lake Park',
    description: 'My name is Jim Green, I am 42 years old, living in London No. 1 Lake Park.',
  },
  {
    key: 3,
    name: 'Not Expandable',
    age: 29,
    address: 'Jiangsu No. 1 Lake Park',
    description: 'This not expandable',
  },
  {
    key: 4,
    name: 'Joe Black',
    age: 32,
    address: 'Sidney No. 1 Lake Park',
    description: 'My name is Joe Black, I am 32 years old, living in Sidney No. 1 Lake Park.',
  },
];

columns设置的key是区分列;data数据区分的是行