Консоль предупреждения: каждый дочерний элемент в списке должен иметь уникальный “ключевой” реквизит в таблице в коде react.js

#javascript #reactjs #console #warnings #antd

#javascript #reactjs #консоль #предупреждения #антд

Вопрос:

Я хочу исправить предупреждение «Каждый дочерний элемент в списке должен иметь уникальный»ключ»prop» в консоли. Я попытался добавить реквизит «rowkey», «key» в, но проблема все еще существует.

 //***************************** Code ********************************//
class TableOfState extends React.Component {
render() {
const states = this.props.statesList;
const columns = [
//**************** I'm trying to add a column "id" *************************//
{
dataIndex: 'id',
key: 'id',
},
{
title: 'name',
dataIndex: 'name',
key: 'name',
},
{
title: 'Color',
dataIndex: 'color',
key: 'color',
},
];
return (
<div>
<Widget>
  <Row>
      <Table
    //******************* The two solutions that I tried *******************//
        // key={states.id}
        // id={states.id}
        // rowkey={states.idDept}
        dataSource={states}
        columns={columns}
        pagination={true}
        className="gx-table-responsive"
        style={{ width: "100%" }}
      />

       </Row>
    </Widget>
  </div>
)
}
}
 

Вот предупреждение на консоли::
введите описание изображения здесь

Комментарии:

1. ключ должен перейти к родительскому

2. Попробуйте установить уникальное ключевое поле для вашего набора данных

Ответ №1:

Вам нужно добавить реквизит «ключ» с уникальным значением ко всем вашим элементам данных

 const dataSource = [
  {
    key: '1',
    id: 1,
    name: 'Mike',
    age: 32,
    address: '10 Downing Street',
  },
  {
    key: '2',
    id: 2,
    name: 'John',
    age: 42,
    address: '10 Downing Street',
  },
];
 

или, если у ваших элементов уже есть уникальный ключ (например, ‘id’), укажите его для компонента таблицы через RowKey prop:

 <Table dataSource={dataSource} rowKey="id" ... />;