【问题标题】:Filter react-admin query by dates按日期过滤 react-admin 查询
【发布时间】:2019-12-04 11:18:33
【问题描述】:

我正在使用react-adminuseGet... 查询从我的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

数据库中的条目都具有createdAtupdatedAt 属性。

我的方法是创建这样的过滤器:

// constraints could be dates that I can easily set beforehand
{ 
    {'createdAt', desiredLowerTimeConstraint, operation: '<='}, 
    {'createdAt', desiredUpperTimeConstraint, operation: '<='} 
}

react-admin documentation 与 filter 属性相当少,我找不到很好的例子来说明这些对象应该是什么样子。

【问题讨论】:

    标签: reactjs react-admin


    【解决方案1】:

    这完全取决于您的 API 期望过滤器的样子。

    例如,在由 JSONServer 提供服务的 REST API 中,查询字符串参数名称上的 _lte 后缀表示您希望结果“小于或等于”值:

    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 使用相同的语法,并在将 dataProvider 中的参数发送到 API 之前对其进行转换。

    【讨论】:

      猜你喜欢
      • 2013-08-16
      • 2016-07-10
      • 1970-01-01
      • 1970-01-01
      • 2019-11-02
      • 2019-03-01
      • 2013-11-04
      • 2018-05-27
      • 1970-01-01
      相关资源
      最近更新 更多