我正在使用react-admin
的useGet...
查询来从Rails后端收集数据。这里的主要问题是filter属性(useGetList操作中的最后一对花括号)。如何按日期过滤数据(例如仅获取上个月的交易等)
这是当前(有效的)方法:
useGet...
数据库中的所有条目均具有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
的filter属性非常稀少,我找不到这些对象的外观的好例子。
这完全取决于您的API如何期望过滤器的外观。
例如,在documentation提供的REST API中,查询字符串参数名称的后缀JSONServer表示您想要结果“小于或等于”值:
_lte
如果您使用GET /transactions?createdAt_lte=2019-12-05
,则可以通过在ra-data-simple-rest
中传递参数来制作此请求:
filter
如果您的API的行为不同,那么您可以对const { data, loading, error } = useGetList(
'transactions',
{ page: 1, perPage: 10000 },
{ field: 'id', order: 'ASC' },
{ createdAt_lte: '2019-12-05' },
)
使用相同的语法,并在将useGetList
发送给API之前先对其进行转换。