###### tags: `ui` # Table collapsing : 欄位寬度和內容相符 `<Table collapsing>` ```jsx= import { Table } from 'semantic-ui-react'; <Table celled> <Table.Header> <Table.Row> <Table.HeaderCell>Header</Table.HeaderCell> <Table.HeaderCell>Header</Table.HeaderCell> <Table.HeaderCell>Header</Table.HeaderCell> </Table.Row> </Table.Header> <Table.Body> <Table.Row> <Table.Cell>Cell</Table.Cell> <Table.Cell>Cell</Table.Cell> <Table.Cell>Cell</Table.Cell> </Table.Row> </Table.Body> </Table> ``` ## 顯示陣列資料 ### 自動式 用一個物件設定欄位 key 和要顯示的中文欄位標題 在 Table 中,取得此物件資料做顯示 ```jsx! const obj = { dateField: '日期', itemName: '項目', amt: '支出', qty: '股數', }; const columns = Object.keys(obj); <Table celled unstackable> <Table.Header> <Table.Row> {columns.map((k, index) => { return <Table.HeaderCell>{obj[k]}</Table.HeaderCell>; })} </Table.Row> </Table.Header> <Table.Body> {rows.map((row) => { return ( <Table.Row key={row.id}> {columns.map((col) => { return <Table.Cell>{row[col]}</Table.Cell>; })} </Table.Row> ); })} </Table.Body> </Table> ``` ### 固定式 ```jsx! import React, { useEffect, useState } from 'react'; import { db } from '../../utils/firebase'; import TableView from './components/TableView'; export default function index() { const [rows, setRows] = useState([]); // 文件集合名稱 const colName = 'stocks'; useEffect(() => { fetchData(); }, []); const fetchData = async () => { const snapshot = await db.collection(colName).limit(10).get(); const data = snapshot.docs.map((doc) => { return { ...doc.data(), id: doc.id }; }); console.log(data); setRows(data); }; return ( <> <TableView rows={rows} /> </> ); } ``` ```jsx! import React from 'react'; import { Table } from 'semantic-ui-react'; export default function TableView({ rows }) { return ( <div> <Table celled unstackable> <Table.Header> <Table.Row> <Table.HeaderCell width={2}>欄位一</Table.HeaderCell> <Table.HeaderCell width={2}>欄位二</Table.HeaderCell> </Table.Row> </Table.Header> <Table.Body> {rows.map((row) => { return ( <Table.Row key={row.id}> <Table.Cell>{row.name}</Table.Cell> <Table.Cell>{row.qty}</Table.Cell> </Table.Row> ); })} </Table.Body> </Table> </div> ); } ``` ## 排序 顯示箭頭 ```jsx! <Table sortable> <Table.HeaderCell sorted="ascending || descending"> ```
{"metaMigratedAt":"2023-06-18T05:11:45.757Z","metaMigratedFrom":"Content","breaks":true,"description":"顯示箭頭","title":"Table","contributors":"[{\"id\":\"b427ac7a-1d08-4152-92a1-ba139f1c4c81\",\"add\":2749,\"del\":2}]"}
Expand menu