PL
Jak stworzyć własną tabelę dynamiczną w React
3 points
Cześć wszystkim! 👋 😊
W zeszłym tygodniu miałem problem z utworzeniem dynamicznej tabeli w React i pomyślałem, że może komuś przyda się takie rozwiązanie.
Efekt końcowy tego rozwiązania:

Poniższy przykład składa się z kilku kroków:
- Stworzyłem dynamiczną tabelę na podstawie tablicy,
- Każda tabela składa się z nagłówka i rekordów danych,
- Nagłówek jest stały i zachowuje zawsze tę samą liczbę kolumn,
- Podczas tworzenia rekordów użyłem funkcji
map()
do konwersji elementów tablicy na elementy Reacta.
Pamiętaj, że każdy element powinien mieć unikalny klucz 🗝️, ponieważ pomaga to Reactowi optymalnie zarządzać zmianami w drzewie DOM. Takim kluczem może być na przykład identyfikator
id
przypisany do każdego elementu tablicy.
Uruchamialny przykład:
xxxxxxxxxx
1
// Uwaga: Odkomentuj wiersze z importami podczas pracy z kompilatorem JSX.
2
// import React from 'react';
3
// import ReactDOM from 'react-dom';
4
5
const tableStyle = {
6
border: '1px solid black',
7
borderCollapse: 'collapse',
8
textAlign: 'center',
9
width: '100%'
10
}
11
12
const tdStyle = {
13
border: '1px solid #85C1E9',
14
background: 'white',
15
padding: '5px'
16
};
17
18
const thStyle = {
19
border: '1px solid #3498DB',
20
background: '#3498DB',
21
color: 'white',
22
padding: '5px'
23
};
24
25
const App = () => {
26
const students = [
27
{ id: 1, name: 'Tomek', age: 25, favFruit: '🍏' },
28
{ id: 2, name: 'Adam', age: 43, favFruit: '🍌' },
29
{ id: 3, name: 'Marek', age: 16, favFruit: '🍊' },
30
{ id: 4, name: 'Jacek', age: 29, favFruit: '🍒' }
31
];
32
return (
33
<div>
34
<table style={tableStyle}>
35
<tbody>
36
<tr>
37
<th style={thStyle}>Id</th>
38
<th style={thStyle}>Imie</th>
39
<th style={thStyle}>Wiek</th>
40
<th style={thStyle}>Ulubiony owoc</th>
41
</tr>
42
{students.map(({ id, name, age, favFruit }) => (
43
<tr key={id}>
44
<td style={tdStyle}>{id}</td>
45
<td style={tdStyle}>{name}</td>
46
<td style={tdStyle}>{age}</td>
47
<td style={tdStyle}>{favFruit}</td>
48
</tr>
49
))}
50
</tbody>
51
</table>
52
</div>
53
);
54
};
55
56
const root = document.querySelector('#root');
57
ReactDOM.render(<App />, root );
Uwaga:
Jeśli chcesz dowiedzieć się więcej o tabelach dynamicznych, przeczytaj ten artykuł. 😊