我正在使用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
后缀表示您希望结果“小于或等于”该值:
GET /transactions?createdAt_lte=2019-12-05
如果您使用ra-data-simple-rest
,您可以通过在过滤器
中传递参数来构造此请求:
const { data, loading, error } = useGetList(
'transactions',
{ page: 1, perPage: 10000 },
{ field: 'id', order: 'ASC' },
{ createdAt_lte: '2019-12-05' },
)
如果您的 API 行为不同,那么您可以对 useGetList
使用相同的语法,并在将 dataProvider
中的参数发送到 API 之前对其进行转换。
关于reactjs - 按日期过滤 react 管理查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59174806/