reactjs - 通过“单元格”选项更改数据时反应表无法过滤
问题描述
我有列数组:
const columns = useMemo(
() => [
{
Header: 'User',
sortType: 'basic',
accessor: row => row,
Cell: ({ row }) => (
<div>
<img src={row.original.user.image}
/>
{row.original.user.name}
</div>
),
},
{
Header: 'Description',
accessor: 'description',
sortType: 'basic',
Cell: ({ cell: { value } }) => shortText(value),
},
{
Header: 'Created',
accessor: 'createdAt',
sortType: 'basic',
Cell: ({ cell: { value } }) =>
moment(value).format('DD-MM-YYYY HH:mm'),
},
],
[],
)
过滤器不适用于User
和Created
列。在表中,我通过Cell
函数更改数据,更改数据在表内呈现,但filterGobal
方法通过data
. 例如:在表内我有 fromat data: 11-11-2021 15-45
,但在数据(来自后端)我有"2021-11-11T15:44:44.787Z"
User
我觉得我的专栏也有同样的问题。在表中,我只有图像和名称用户。但在data
我有对象:
user: {
id: 1,
name: "Jack",
age: 18,
}
我如何使用globalFilter
机智Cell
方法?
解决方案
我找到了解决方案,我刚刚添加了accessor
例如:
{
Header: 'Created',
sortType: 'basic',
accessor: d => moment(d.createdAt).format('DD-MM-YYYY HH:mm'),
},
对于User
列:
{
Header: 'User',
sortType: 'basic',
accessor: row => row.user.name,
Cell: ({ row }) => (
<div>
<img src={row.original.user.image}
/>
{row.original.user.name}
</div>
),
},
现在按参数react-table
过滤。user.name
如果您需要将年龄添加到列,那么您必须添加到accessor
:
accessor: row => `${row.user.name} ${row.user.age}`,
推荐阅读
- jquery - 单击链接时更改活动 li 及其活动父 li
- javascript - 得到已由 setAttribute() 使用 getElementById() 动态设置的 ID
- javascript - 未捕获的类型错误:file.open 不是函数
- python - python中深度图的表面法线计算
- java - AWS Elastic Beanstalk - tomcat java spring boot 应用程序的问题
- php - 无法从表单接收电子邮件地址
- python - 多次查找真值的数量
- ios - TableView中的搜索栏无法调用数组
- xml - 如何在 XSL 中显示图像
- javascript - 在 JavaScript 中获取“未捕获的 SyntaxError:无效或意外令牌”