Languages
[Edit]
PL

React - jak stworzyć dynamiczną tabelę

3 points
Created by:
Blythe-F
620

W tym artykule chcielibyśmy pokazać wam, jak stworzyć dynamiczną tabelę w React.

Poniższy przykład składa się z kilku kroków:

  1. Stworzenie dynamicznej tabeli na podstawie tablicy,
  2. Każda tabela składa się z nagłówka i rekordów danych,
  3. Nagłówek jest zwykle stały i zachowuje tę samą liczbę kolumn,
  4. Tworząc rekordy danych korzystamy z funkcji map(). Jest to dobre podejście aby przekonwertować elementy tablicy na elementy React.

Uwaga:

Pamiętaj, że każdy element powinien posiadać unikalny klucz - pomaga to Reactowi optymalnie zarządzać zmianami w drzewie DOM. Takim kluczem może być na przykład identyfikator id przypisany do każdego z elementów tablicy.

Uruchamialny przykład:

// ONLINE-RUNNER:browser;

// Uwaga: Odkomentuj wiersze z importami podczas pracy z kompilatorem JSX.
// import React from 'react';
// import ReactDOM from 'react-dom';

const tableStyle = {
    border: '1px solid black',
    borderCollapse: 'collapse'
}

const tdStyle = {
  	border: '1px solid black',
};

const App = () => {
  	const students = [
       { id: 1, name: 'Tomek',  age: 22 },
       { id: 2, name: 'Adam', age: 43 },
       { id: 3, name: 'Marek', age: 16 },
       { id: 4, name: 'Jacek', age: 29 }
    ];
    return (
      <div>
        <table style={tableStyle}>
          <tbody>
            <tr>
              <th style={tdStyle}>Id</th>
              <th style={tdStyle}>Imię</th>
              <th style={tdStyle}>Wiek</th>
            </tr>
            {students.map(({ id, name, age }) => (
              <tr key={id}>
                <td style={tdStyle}>{id}</td>
                <td style={tdStyle}>{name}</td>
                <td style={tdStyle}>{age}</td>
              </tr>
            ))}
          </tbody>
        </table>
      </div>
    );
};

const root = document.querySelector('#root');
ReactDOM.render(<App />, root );

Przykład dynamicznego komponentu tabeli

W tej sekcji chcielibyśmy pokazać, jak stworzyć komponent, który wyświetla dane zmieniające się po kliknięciu.

// ONLINE-RUNNER:browser;

// Uwaga: Odkomentuj wiersze z importami podczas pracy z kompilatorem JSX.
// import React from 'react';
// import ReactDOM from 'react-dom';

const tableStyle = {
  border: '1px solid black',
  borderCollapse: 'collapse'
}

const tdStyle = {
  border: '1px solid black',
};

const Table = ({students}) => (
<div>
  <table style={tableStyle}>
    <tbody>
      <tr>
        <th style={tdStyle}>Id</th>
        <th style={tdStyle}>Imię</th>
        <th style={tdStyle}>Wiek</th>
      </tr>
      {students.map(({ id, name, age }) => (
        <tr key={id}>
          <td style={tdStyle}>{id}</td>
          <td style={tdStyle}>{name}</td>
          <td style={tdStyle}>{age}</td>
        </tr>
      ))}
    </tbody>
  </table>
</div>
);

const GROUP_1 = [
  { id: 1, name: 'Tomek',  age: 22 },
  { id: 2, name: 'Adam', age: 43 },
  { id: 3, name: 'Marek', age: 16 },
  { id: 4, name: 'Jacek', age: 29 }
];

const GROUP_2 = [
  { id: 1, name: 'Kasia', age: 23 },
  { id: 2, name: 'Ania',  age: 18 }
];

const App = () => {
  const [students, setStudents] = React.useState(GROUP_1);
  return (
    <div>
      <div>
        <button onClick={() => setStudents(GROUP_1)}>Pokaż GRUPE_1</button>
        <button onClick={() => setStudents(GROUP_2)}>Pokaż GRUPE_2</button>
      </div>
      <br />
      <Table students={students} />
    </div >
  );
};

const root = document.querySelector('#root');
ReactDOM.render(<App />, root );

Zobacz też

Donate to Dirask
Our content is created by volunteers - like Wikipedia. If you think, the things we do are good, donate us. Thanks!
Join to our subscribers to be up to date with content, news and offers.

ReactJS (PL)

React - jak stworzyć dynamiczną tabelę
Native Advertising
🚀
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - we help you to
solve coding problems.
Ask question.

❤️💻 🙂

Join