рдореИрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рдХреБрдВрдЬреА рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
рдЕрдм рддрдХ, рдореЗрд░рд╛ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
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- рдбрд┐рдЬрд╛рдЗрди-рдмреЙрдЯ
рдХреЙрд▓рдо рдХреЗ рд╕рд╛рде рдпрджрд┐ рдбреЗрдЯрд╛ рдЗрдВрдбреЗрдХреНрд╕ рд╕рдВрдкрддреНрддрд┐ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреЙрд▓рдо рдХреБрдВрдЬреА рдХреЛ рдЕрджреНрд╡рд┐рддреАрдп рдХреБрдВрдЬреА рд╕реЗрдЯ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред
@johhansantana рдХреБрдВрдЬреА рдЕрджреНрд╡рд┐рддреАрдп рдирд╣реАрдВ рд╣реИ
рд╢реАрд░реНрд╖рдХ: 'рд╢реНрд░реЗрдгреА (рдУрдВ)',
рдХреБрдВрдЬреА: `рдЖрдИрдбреА $ {рдЕрдкрдбреЗрдЯ рдЗрдВрдбреЗрдХреНрд╕ ()}`,
...
рд╢реАрд░реНрд╖рдХ: 'рдПрдХреНрд╢рди',
рдХреБрдВрдЬреА: `рдЖрдИрдбреА $ {рдЕрдкрдбреЗрдЯ рдЗрдВрдбреЗрдХреНрд╕ ()}`,
рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рд╣рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред @рд▓рд┐рдЬрд┐рдирд▓реЛрди
@ahmetkuslular рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдореЗрдВ рдЙрди рдкрд░ рдПрдХ рдкреНрд░рдореБрдЦ рд╕рдВрдкрддреНрддрд┐ рд╡рд╛рд▓реЗ рдЖрдЗрдЯрдо рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рдПрдХ рдлрд╝реАрд▓реНрдб рд╕реЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рддрд╛рд▓рд┐рдХрд╛ рдШрдЯрдХ рдкрд░ rowKey рдЧреБрдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рд╣реИред
рд╕реНрд░реЛрдд рдХреЛрдб рдпрд╣рд╛рдБ
<Table
columns={columns}
dataSource={this.props.categories}
rowKey="name"
/>
рдпрд╣ рдореБрдЭреЗ рднреА рднреНрд░рдорд┐рдд рдХрд░ рд░рд╣рд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ ROW рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде COLUMN рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХрд╛ рдЖрдкрдХреЗ рдХреЙрд▓рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ "рдХреБрдВрдЬреА" рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред
рдЪреАрдВрдЯреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реА рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдбреЗрдЯрд╛ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдкрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ "рдХреБрдВрдЬреА" рдирд╛рдо рдХреА рдПрдХ рдЕрдиреВрдареА рдХреБрдВрдЬреА рд╣реЛрдЧреА, рдЬреИрд╕реЗ:
{ key: 1, value: 'foo'}
рдореЗрд░реЗ рдбреЗрдЯрд╛ рдХреЗ рдмрдЬрд╛рдп "рдЖрдИрдбреА" рдерд╛:
{ id: 1, value: 'foo'}
рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдкрдиреА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд╝рд╛:
<Table columns={this.columns} dataSource={this.state.results} rowKey='id' />
<Table .... rowKey={record => record.countryId} ... />
рдЗрд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдареАрдХ рдХрд░ рджрд┐рдпрд╛ред
countryId
рдЖрдкрдХреЗ рдбреЗрдЯрд╛ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдлрд╝реАрд▓реНрдб рдкрд░ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдорд╛рди рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗред
рдЪреАрдВрдЯреА-рдбрд┐рдЬрд╝рд╛рдЗрди рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ, RowKey рдкреНрд░реЛрдк рдкреНрд░рдХрд╛рд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИред
рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ uuid рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рд╛ред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ред
рдЕрд░реЗ рджреЛрд╕реНрддреЛрдВ, рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ
<Table
рдкрдВрдХреНрддрд┐рдХреА = "рдЖрдИрдбреА" ...../>
рдФрд░ 'рдЖрдИрдбреА' рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЕрдВрджрд░ рдХреЗ рдХреЙрд▓рдо рдореЗрдВ рд╕реЗ рдПрдХ рдХреА рдХреБрдВрдЬреА рд╣реИ -
рдХрд╛рд╕реНрдЯ рдХреЙрд▓рдо = [
{
рд╢реАрд░реНрд╖рдХ: '#',
рдбреЗрдЯрд╛ рдЗрдВрдбреЗрдХреНрд╕: data.id,
рдХреБрдВрдЬреА: 'рдЖрдИрдбреА',
},
{
рд╢реАрд░реНрд╖рдХ рдирд╛рдо',
рдбреЗрдЯрд╛ рдЗрдВрдбреЗрдХреНрд╕: 'рдирд╛рдо',
рдХреБрдВрдЬреА: 'рдирд╛рдо',
},
.
.
рд╣рд╛рдБ рдФрд░ рдореЗрд░реА рдЖрдИрдбреА рднреА рдПрдХ рдЕрдиреВрдареА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИред рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ, рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХреЙрд▓рдо рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓рдо рдХреЗ рд▓рд┐рдП 'рдбреЗрдЯрд╛-рдкрдВрдХреНрддрд┐-рдХреБрдВрдЬреА' рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЖрдИрдбреА рд╕реЗрдЯ рд╣реИ рдФрд░ рдЕрдм рдХреЛрдИ рдЪреЗрддрд╛рд╡рдиреА рдирд╣реАрдВ рд╣реИред
рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓ рдореЗрдВ рдЕрджреНрд╡рд┐рддреАрдп
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
рдкреНрд░реЛрдк рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?
рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдПрдВрдЯрдбреА рдкреЗрдЬ рдкрд░ рдЙрджрд╛рд╣рд░рдг рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдирд╣реАрдВ рдлреЗрдВрдХ рд░рд╣реЗ рд╣реИрдВред
рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдореБрдЭреЗ рдЬреЛ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ рд╡рд╣ рдпрд╣ рд╕рдВрджреЗрд╢ рд╣реИ
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
рдЬреЛрдбрд╝рд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдЕрдм рд╡рд╣ рдЪреЗрддрд╛рд╡рдиреА рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣реА рд╣реИ!
рдпрд╣ рдореБрдЭреЗ рднреА рднреНрд░рдорд┐рдд рдХрд░ рд░рд╣рд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ ROW рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде COLUMN рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХрд╛ рдЖрдкрдХреЗ рдХреЙрд▓рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ "рдХреБрдВрдЬреА" рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред
рдЪреАрдВрдЯреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реА рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдбреЗрдЯрд╛ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдкрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ "рдХреБрдВрдЬреА" рдирд╛рдо рдХреА рдПрдХ рдЕрдиреВрдареА рдХреБрдВрдЬреА рд╣реЛрдЧреА, рдЬреИрд╕реЗ:
{ key: 1, value: 'foo'}
рдореЗрд░реЗ рдбреЗрдЯрд╛ рдХреЗ рдмрдЬрд╛рдп "рдЖрдИрдбреА" рдерд╛:
{ id: 1, value: 'foo'}
рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдкрдиреА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд╝рд╛:
<Table columns={this.columns} dataSource={this.state.results} rowKey='id' />
рдЗрд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рддрдп рдХрд┐рдпрд╛, рдзрдиреНрдпрд╡рд╛рдж
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@ahmetkuslular рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдореЗрдВ рдЙрди рдкрд░ рдПрдХ рдкреНрд░рдореБрдЦ рд╕рдВрдкрддреНрддрд┐ рд╡рд╛рд▓реЗ рдЖрдЗрдЯрдо рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рдПрдХ рдлрд╝реАрд▓реНрдб рд╕реЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рддрд╛рд▓рд┐рдХрд╛ рдШрдЯрдХ рдкрд░ rowKey рдЧреБрдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рд╣реИред
рд╕реНрд░реЛрдд рдХреЛрдб рдпрд╣рд╛рдБ