React table 更改单元格 onClick 的样式
React table changing style of cell onClick
我是 React table 的新手,我使用 React-table 创建了基本的 table。单击特定单元格时,我无法弄清楚如何更改单元格的颜色。我在 Whosebug 上找不到任何资源或相关问题。
这是我的代码:
import React, { useMemo } from 'react'
import { useTable } from 'react-table'
import MOCK_DATA from '../MOCK_DATA.json'
import { COLUMN } from './Column'
import './table.css'
export const BasicTable = () => {
const columns = useMemo(() => COLUMN, [])
const data = useMemo(() => MOCK_DATA, [])
const {
getTableProps,
getTableBodyProps,
headerGroups,
footerGroups,
rows,
prepareRow
} = useTable({
columns,
data
})
return (
<>
<table {...getTableProps()}>
<thead>
{headerGroups.map(headerGroup => (
<tr {...headerGroup.getHeaderGroupProps()}>
{headerGroup.headers.map(column => (
<th {...column.getHeaderProps()}>{column.render('Header')}</th>
))}
</tr>
))}
</thead>
<tbody {...getTableBodyProps()}>
{rows.map(row => {
prepareRow(row)
return (
<tr {...row.getRowProps()}>
{row.cells.map(cell => {
return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>
})}
</tr>
)
})}
</tbody>
<tfoot>
{footerGroups.map(footerGroup => (
<tr {...footerGroup.getFooterGroupProps()}>
{footerGroup.headers.map(column => (
<td {...column.getFooterProps()}>{column.render('Footer')}</td>
))}
</tr>
))}
</tfoot>
</table>
</>
)
}
我在 MOCK_DATA 中获取演示数据(这只是随机数据)。当我点击特定的单元格时,我希望特定的单元格颜色发生变化。我应该如何处理这个问题。在反应中,如果我们想改变按钮的颜色或其他任何东西,我们可以使用 useState 来做到这一点,但我在这里无法弄清楚。
这是现场示例:https://codesandbox.io/s/focused-field-2sgkqz?file=/src/MOCK_DATA.json:35842-48670
你想要is:when你点击一个特定的单元格,那个特定的单元格改变颜色?
如果是这样,你只需要记住选择的 row.like 是 demo,这是你想要的吗?
我是 React table 的新手,我使用 React-table 创建了基本的 table。单击特定单元格时,我无法弄清楚如何更改单元格的颜色。我在 Whosebug 上找不到任何资源或相关问题。
这是我的代码:
import React, { useMemo } from 'react'
import { useTable } from 'react-table'
import MOCK_DATA from '../MOCK_DATA.json'
import { COLUMN } from './Column'
import './table.css'
export const BasicTable = () => {
const columns = useMemo(() => COLUMN, [])
const data = useMemo(() => MOCK_DATA, [])
const {
getTableProps,
getTableBodyProps,
headerGroups,
footerGroups,
rows,
prepareRow
} = useTable({
columns,
data
})
return (
<>
<table {...getTableProps()}>
<thead>
{headerGroups.map(headerGroup => (
<tr {...headerGroup.getHeaderGroupProps()}>
{headerGroup.headers.map(column => (
<th {...column.getHeaderProps()}>{column.render('Header')}</th>
))}
</tr>
))}
</thead>
<tbody {...getTableBodyProps()}>
{rows.map(row => {
prepareRow(row)
return (
<tr {...row.getRowProps()}>
{row.cells.map(cell => {
return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>
})}
</tr>
)
})}
</tbody>
<tfoot>
{footerGroups.map(footerGroup => (
<tr {...footerGroup.getFooterGroupProps()}>
{footerGroup.headers.map(column => (
<td {...column.getFooterProps()}>{column.render('Footer')}</td>
))}
</tr>
))}
</tfoot>
</table>
</>
)
}
我在 MOCK_DATA 中获取演示数据(这只是随机数据)。当我点击特定的单元格时,我希望特定的单元格颜色发生变化。我应该如何处理这个问题。在反应中,如果我们想改变按钮的颜色或其他任何东西,我们可以使用 useState 来做到这一点,但我在这里无法弄清楚。
这是现场示例:https://codesandbox.io/s/focused-field-2sgkqz?file=/src/MOCK_DATA.json:35842-48670
你想要is:when你点击一个特定的单元格,那个特定的单元格改变颜色? 如果是这样,你只需要记住选择的 row.like 是 demo,这是你想要的吗?