reactjs - React-table - 自定义服务器端过滤器 -
问题描述
我需要使用 React-table 向列添加过滤器。我需要将过滤器放在服务器端,事实证明很难理解 react-table 的工作原理。我需要的基本上是在列中添加过滤器,具体取决于我要如何过滤但是标题下的过滤器没有被呈现。到目前为止,我有这个:
列:并非“用户”列有过滤器。在这种情况下,我想用一个简单的输入只过滤用户列
function ShirtColumnsTable() {
return [
{
Header: 'Users',
accessor: 'shirtUser.username',
Filter: ({ filter, onChange }) => (
<select
onChange={event => onChange(event.target.value)}
style={{ width: "100%" }}
value={filter ? filter.value : "all"}
>
{this.state.yearFilter}
</select>
),
filterable: true
},
{
Header: 'Team', accessor: 'team.name'
},
{
Header: 'Likes', accessor: 'likes'
},
{
Header: 'Created date', accessor: 'createdAt'
}
]
}
这是我使用表格的组件:
function ShirtIndexComponent() {
const [data, setData] = useState([])
const [columns, setColumns] = useState(ShirtColumnsTable())
const url = 'shirts'
const apiFetch = new ApiFetch(url, { sorted: { createdAt: '-1' }, filtered: { title: '' }, pageSize: 10, pageNum: 1 })
async function fetchApi() {
const response = await apiFetch.get()
setData(response.shirts)
}
useEffect(() => {
fetchApi()
}, []);
return (
<div>
<ReactTableComponent
columns={columns}
data={data} />
</div>
)
}
export default ShirtIndexComponent;
还有桌子
import React, { useState } from 'react'
import { useTable, useFilters } from 'react-table'
function Table({ columns, data }) {
console.log(columns)
const {
getTableProps,
getTableBodyProps,
headerGroups,
rows,
prepareRow,
} = useTable({
columns,
data,
},
useFilters, // useFilters!
)
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, i) => {
prepareRow(row)
return (
<tr {...row.getRowProps()}>
{row.cells.map(cell => {
return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>
})}
</tr>
)
})}
</tbody>
</table>
)
}
export default Table;
解决方案
推荐阅读
- ibm-mq - 如何将 phpamqplib 与 IBM mq amqp 一起使用
- google-bigquery - BigQuery 中 Firebase Analytics 的日内表
- powershell - Powershell:不要刷新存储在变量中的Get-Date
- css - Visual Studio 代码不断创建我的 css 文件,使其与我的 scss 文件位于同一文件夹中
- python - 如果我在烧瓶中有两条路线指向同一个 url,烧瓶如何决定要运行哪些功能?
- spring-boot - 运行在另一个文件夹中而不是在 main / src 中编写的空手道测试
- c++ - C / C ++中的整数到两位十六进制
- reactjs - 如何在我的组件中获取用户 ID 以便能够分派到操作
- linq - 如何在实体框架中使用包含(T-SQL)
- mongodb - Zapier 与 mongodb 连接时出错