按日期过滤 react-admin 查询
Filter react-admin query by dates
我正在使用 react-admin
的 useGet...
查询从我的 rails 后端收集数据。这里的主要问题是过滤器 属性(useGetList 操作中的最后一对花括号)。我如何按日期过滤数据(比如只获取上个月的交易等)
这是当前(有效)方法:
const { data, loading, error } = useGetList(
'transactions',
{ page: 1, perPage: 10000 },
{ field: 'id', order: 'ASC' },
{},
)
if (loading) return <p>Loading</p>
if (error) return <p>Error</p>
if (!data) return null
数据库中的条目都有 createdAt
和 updatedAt
属性。
我的方法是创建一个这样的过滤器:
// constraints could be dates that I can easily set beforehand
{
{'createdAt', desiredLowerTimeConstraint, operation: '<='},
{'createdAt', desiredUpperTimeConstraint, operation: '<='}
}
react-admin
documentation 与过滤器 属性 相当稀疏,我找不到很好的例子来说明这些对象应该是什么样子。
这完全取决于您的 API 期望过滤器的外观。
例如,在 JSONServer 提供的 REST API 中,查询字符串参数名称上的 _lte
后缀表示您想要结果 "Less Than or Equal to" 的值:
GET /transactions?createdAt_lte=2019-12-05
如果您使用 ra-data-simple-rest
,您可以通过在 filter
中传递参数来制作此请求:
const { data, loading, error } = useGetList(
'transactions',
{ page: 1, perPage: 10000 },
{ field: 'id', order: 'ASC' },
{ createdAt_lte: '2019-12-05' },
)
如果您的 API 表现不同,那么您可以对 useGetList
使用相同的语法,并在将参数发送到 API 之前转换 dataProvider
中的参数.
我正在使用 react-admin
的 useGet...
查询从我的 rails 后端收集数据。这里的主要问题是过滤器 属性(useGetList 操作中的最后一对花括号)。我如何按日期过滤数据(比如只获取上个月的交易等)
这是当前(有效)方法:
const { data, loading, error } = useGetList(
'transactions',
{ page: 1, perPage: 10000 },
{ field: 'id', order: 'ASC' },
{},
)
if (loading) return <p>Loading</p>
if (error) return <p>Error</p>
if (!data) return null
数据库中的条目都有 createdAt
和 updatedAt
属性。
我的方法是创建一个这样的过滤器:
// constraints could be dates that I can easily set beforehand
{
{'createdAt', desiredLowerTimeConstraint, operation: '<='},
{'createdAt', desiredUpperTimeConstraint, operation: '<='}
}
react-admin
documentation 与过滤器 属性 相当稀疏,我找不到很好的例子来说明这些对象应该是什么样子。
这完全取决于您的 API 期望过滤器的外观。
例如,在 JSONServer 提供的 REST API 中,查询字符串参数名称上的 _lte
后缀表示您想要结果 "Less Than or Equal to" 的值:
GET /transactions?createdAt_lte=2019-12-05
如果您使用 ra-data-simple-rest
,您可以通过在 filter
中传递参数来制作此请求:
const { data, loading, error } = useGetList(
'transactions',
{ page: 1, perPage: 10000 },
{ field: 'id', order: 'ASC' },
{ createdAt_lte: '2019-12-05' },
)
如果您的 API 表现不同,那么您可以对 useGetList
使用相同的语法,并在将参数发送到 API 之前转换 dataProvider
中的参数.