Update and rename mapped-table.md to DataTable.md

This commit is contained in:
Angelos Chalaris
2018-11-29 11:13:59 +02:00
committed by GitHub
parent 236ade6922
commit a74d7277a0
2 changed files with 41 additions and 46 deletions

41
snippets/DataTable.md Normal file
View File

@ -0,0 +1,41 @@
### DataTable
Renders a table with rows dynamically created from an array of data.
Render a `<table>` element with two columns (`ID` and `Value`).
Use `Array.prototype.map` to render every item in `data` as a `<tr>` element, consisting of its index and value, give it a `key` produced from the concatenation of the two.
```jsx
function DataTable({ data }) {
return (
<table>
<thead>
<tr>
<th>ID</th>
<th>Value</th>
</tr>
</thead>
<tbody>
{data.map((val, i) =>
<tr key={`${i}_${val}`}>
<td>{i}</td>
<td>{val}</td>
</tr>
)}
</tbody>
</table>
);
}
```
```jsx
const people = ['John', 'Jesse'];
ReactDOM.render(
<DataTable data={people} />,
document.getElementById('root')
);
```
<!-- tags: array,functional -->
<!-- expertise: 0 -->

View File

@ -1,46 +0,0 @@
### MappedTable
Renders a table with rows dynamically created from an array of data.
Use the value of the `headers` prop to conditionally render a table with a header. Use `Array.prototype.map` to render every item in `data` as a `<tr>` element and give it a `key`. `data` can either be an array of objects with the `id` and `name` properties or an array of primitives. Omit the `headers` prop to render a `table` without headers.
```jsx
function MappedTable({ headers, data }) {
return (
<table>
<thead>
{headers && (
<tr>
{headers.map((h, i) => (
<th key={i}>h</th>
))}
</tr>
)}
</thead>
<tbody>
{data.map((v, i) =>
(
<tr obj={v} key={v.id || i}>
<td>v.id</td>
<td>v.name</td>
</tr>
);
)}
</tbody>
</table>
);
}
```
```jsx
const people = [{ id: 841, name: 'John' }, { id: 241, name: 'Jesse' }];
const headers = ['id', 'name'];
ReactDOM.render(
<MappedTable data={people} headers={headers} />,
document.getElementById('root')
);
```
<!-- tags: (array,functional) -->
<!-- expertise: (1) -->