κ° λ μ½λμ λν΄ κ³ μ ν ν€λ₯Ό μ»μ μ μλ λ°©λ²μ μμ λ΄λ €κ³ λ Έλ ₯ μ€μ λλ€.
μ§κΈκΉμ§ λ΄ μ½λλ λ€μκ³Ό κ°μ΅λλ€.
let lastIndex = 0
const updateIndex = () => {
lastIndex++
return lastIndex
}
...
constructor() {
super()
this.state = {
columns: [ {
title: 'Nombre',
dataIndex: 'name',
key: `name${updateIndex()}`
}, {
title: 'Precio',
dataIndex: 'price',
key: `price${updateIndex()}`
}, {
title: 'Precio regular',
dataIndex: 'regularPrice',
key: `regularPrice${updateIndex()}`
}, {
title: 'CategorΓa(s)',
key: `id${updateIndex()}`,
render: (text, record) => (
<span>
{
record.categories.map((r, index) => (
<span key={index}>
{
index > 0 &&
<span className="ant-divider"/>
}
<span>{r.name}</span>
</span>
))
}
</span>
)
}, {
title: 'Action',
key: `id${updateIndex()}`,
render: (text, record) => (
<span>
<a href="#">Editar - {record.name}</a>
<span className="ant-divider"/>
<a href="#" style={{color: 'red'}}>Borrar</a>
</span>
)
}, ]
}
}
κ·Έλ¬λ ν
μ΄λΈμ κ° λ μ½λμλ κ³ μ ν key
κ° μμ΄μΌ νλ€λ μ€λ₯κ° κ³μ λ°μν©λλ€.
μ΄κ²μ λ¬μ±νλ κ°μ₯ μ’μ λ°©λ²μ 무μμ λκΉ?
@johhansantanaλ , κ·νμ λ¬Έμ λ λ¬Έμ μꡬ μ¬νμ μ€μνμ§ μμ μ’ λ£λμμ΅λλ€. λ¬Έμ λμ°λ―Έ λ₯Ό μ¬μ©νμ¬ λ¬Έμ λ₯Ό λ§λμΈμ. κ°μ¬ν©λλ€!
μ΄λ μ΄μ΄ μλλΌ λ°μ΄ν°μ ν€λ₯Ό μλ―Έν©λλ€.
λλ κ°μ λ¬Έμ λ₯Ό μκ³ μμ΄. μ΄ λ¬Έμ λ₯Ό μ΄λ»κ² ν΄κ²°ν μ μμ΅λκΉ? @ant-design-bot @afc163
dataIndex μμ±μ΄ μ€μ λμ§ μμ 컬λΌμ κ²½μ° μ»¬λΌ ν€λ κ³ μ ν€λ‘ μ€μ λμ΄μΌ ν©λλ€.
@johhansantana ν€κ° κ³ μ νμ§ μμ΅λλ€ β
μ λͺ©: 'μΉ΄ν
κ³ λ¦¬',
ν€: `id${updateIndex()}`,
...
μ λͺ©: 'μ‘μ
',
ν€: `id${updateIndex()}`,
λλ μ°λ¦¬κ° 무μμ ν΄μΌ νλμ§ μμ ν μ΄ν΄νμ§ λͺ»νμ΅λλ€. @lijinlone
@ahmetkuslular μ€λ₯ λ©μμ§λ λ°μ΄ν° μΈνΈμ ν€ μμ±μ΄ μλ νλͺ©μ΄ ν¬ν¨λμ΄ μμ΄μΌ νκ±°λ κ° νμ κ³ μ ν λ°μ΄ν° μΈνΈ νλμ μ΄λ¦μ μ¬μ©νμ¬ Table κ΅¬μ± μμμ rowKey μμ±μ μ§μ ν΄μΌ νλ€λ μ€λ₯ λ©μμ§κ° λ§€μ° λΆλͺ ν©λλ€.
<Table
columns={columns}
dataSource={this.props.categories}
rowKey="name"
/>
COLUMN ν€μ ROW ν€λ₯Ό νΌλνκΈ° λλ¬Έμ μ΄κ²μ λμκ²λ νΌλμ€λ¬μ μ΅λλ€. μ΄ μ€λ₯λ μ΄ κ΅¬μ±μ "ν€"μ κ΄λ ¨μ΄ μμ΅λλ€.
Antλ λ€μκ³Ό κ°μ΄ κ° λ°μ΄ν° νμ "key"λΌλ κ³ μ ν€κ° μμ κ²μΌλ‘ μμν©λλ€.
{ key: 1, value: 'foo'}
λ΄ λ°μ΄ν°μλ λμ "id"κ° μμ΅λλ€.
{ id: 1, value: 'foo'}
μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ λ€μκ³Ό κ°μ΄ λ΄ ν μ΄λΈμ rowKey μμ±μ μΆκ°νμ΅λλ€.
<Table columns={this.columns} dataSource={this.state.results} rowKey='id' />
<Table .... rowKey={record => record.countryId} ... />
μμ νμ΅λλ€.
countryId
λ λ°μ΄ν°μ κ° νλͺ© νλμμ κ³ μ ν κ°μ
λλ€.
Ant-design ν
μ΄λΈμμ rowKey props μ νμ λ¬Έμμ΄μ
λλ€.
κ·Έλμ uuidλ₯Ό μ¬μ©νμ¬ λ¬Έμμ΄λ‘ μΆκ°νμ΅λλ€. κ·Έλμ μ€λ₯λ₯Ό ν΄κ²°νμ΅λλ€.
μλ
νμΈμ, Tableμ rowKeyλ₯Ό μΆκ°νλ©΄ λ¬Έμ κ° ν΄κ²°λμμ΅λλ€.
<Table
rowKey="μμ΄λ" ...../>
'id'λ λ€μκ³Ό κ°μ΄ ν
μ΄λΈ λ΄λΆμ μ΄ μ€ νλμ ν€μ
λλ€.
μμ μ΄ = [
{
μ λͺ©: '#',
dataIndex: data.id,
ν€: 'μμ΄λ',
},
{
μ λͺ©: 'μ΄λ¦',
λ°μ΄ν° μΈλ±μ€: 'μ΄λ¦',
ν€: 'μ΄λ¦',
},
.
.
λ€, μ μμ΄λλ κ³ μ ν λ¬Έμμ΄μ
λλ€. μ΄ λ³κ²½μΌλ‘ μ΄μ IDκ° κ° μ΄μ λν΄ 'data-row-key' μμ±μΌλ‘ μ€μ λκ³ μ΄μ κ²½κ³ κ° νμλμ§ μλ κ²μ λ³Ό μ μμ΅λλ€.
κ° μ΄μλ κ³ μ ν
key
// each column with unique key
import React from 'react';
import {
Table,
} from 'antd';
const leftTableColumns = [
{
title: 'Page / Modal',
dataIndex: 'pageModal',
key: 'pageModal',
},
{
title: 'Success Rate',
dataIndex: 'successRate',
key: 'successRate',
},
];
const LeftTable = (props) => {
const {
leftTableDatas,
} = props;
return (
<>
<Table
columns={leftTableColumns}
dataSource={leftTableDatas}
/>
</>
);
};
export {
LeftTable,
};
export default LeftTable;
κ³ μ κ°μ΄ μλ ν μ΄λΈμ
rowkey
μ€μ νλ©΄ λ©λλ€.
// table with rowkey
import React from 'react';
import {
Table,
} from 'antd';
const leftTableColumns = [
{
title: 'Page / Modal',
dataIndex: 'pageModal',
},
{
title: 'Success Rate',
dataIndex: 'successRate',
},
];
const LeftTable = (props) => {
const {
leftTableDatas,
} = props;
return (
<>
<Table
// shorthand rowKey
rowkey="id"
// rowKey={obj => obj.id}
columns={leftTableColumns}
dataSource={leftTableDatas}
/>
</>
);
};
export {
LeftTable,
};
export default LeftTable;
@xgqfrms , μ루μ
2μμ rowKey
μνμ rowkey="id"
μ€μΌ μ μμ΅λλ€. κ·Έκ²μ λμΌνκ² μλν©λλ€.
λ΄κ°λ°λ κ²μμ΄ λ©μμ§μ λλ€
Warning: Each child in a list should have a unique "key" prop.
Check the render method of `TableRow`. See https://fb.me/react-warning-keys for more information.
in TableCell (created by TableRow)
in TableRow (created by Connect(TableRow))
in Connect(TableRow) (created by ExpandableRow)
TableCell
λ¬Έμ κ° μμμ λνλ΄μ§λ§ key
μνμ μ΄λ»κ² μ€μ ν μ μμ΅λκΉ?
Antd νμ΄μ§μ μμ μμ μ΄ μ€λ₯κ° λ°μνμ§ μλ κ²μΌλ‘ λνλ¬μ΅λλ€.
λμμ κ°μ¬λ립λλ€.
λ΄κ°λ°λ κ²μμ΄ λ©μμ§μ λλ€
Warning: Each child in a list should have a unique "key" prop. Check the render method of `TableRow`. See https://fb.me/react-warning-keys for more information. in TableCell (created by TableRow) in TableRow (created by Connect(TableRow)) in Connect(TableRow) (created by ExpandableRow)
μ΄λ΄, λ°©κΈ μμ λμ΄. columns
μνμλ dataIndex
λλ key
μ΄ μμ΄μΌ ν©λλ€.
μ΄ μΉμ μμ μΈκΈλ©λλ€: https://ant.design/components/table/#Column
@tuanalumi , μ§μ ν΄ μ£Όμ
μ κ°μ¬ν©λλ€. key
μΆκ°νλλ° λ μ΄μ ν΄λΉ κ²½κ³ κ° νμλμ§ μμ΅λλ€!
COLUMN ν€μ ROW ν€λ₯Ό νΌλνκΈ° λλ¬Έμ μ΄κ²μ λμκ²λ νΌλμ€λ¬μ μ΅λλ€. μ΄ μ€λ₯λ μ΄ κ΅¬μ±μ "ν€"μ κ΄λ ¨μ΄ μμ΅λλ€.
Antλ λ€μκ³Ό κ°μ΄ κ° λ°μ΄ν° νμ "key"λΌλ κ³ μ ν€κ° μμ κ²μΌλ‘ μμν©λλ€.
{ key: 1, value: 'foo'}
λ΄ λ°μ΄ν°μλ λμ "id"κ° μμ΅λλ€.
{ id: 1, value: 'foo'}
μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ λ€μκ³Ό κ°μ΄ λ΄ ν μ΄λΈμ rowKey μμ±μ μΆκ°νμ΅λλ€.
<Table columns={this.columns} dataSource={this.state.results} rowKey='id' />
λλ₯Ό μν΄ κ·Έκ²μ κ³ μ³€μ΅λλ€, κ°μ¬ν©λλ€
κ°μ₯ μ μ©ν λκΈ
@ahmetkuslular μ€λ₯ λ©μμ§λ λ°μ΄ν° μΈνΈμ ν€ μμ±μ΄ μλ νλͺ©μ΄ ν¬ν¨λμ΄ μμ΄μΌ νκ±°λ κ° νμ κ³ μ ν λ°μ΄ν° μΈνΈ νλμ μ΄λ¦μ μ¬μ©νμ¬ Table κ΅¬μ± μμμ rowKey μμ±μ μ§μ ν΄μΌ νλ€λ μ€λ₯ λ©μμ§κ° λ§€μ° λΆλͺ ν©λλ€.
μ¬κΈ°μ μμ€ μ½λ