reactjs - 按日期过滤 react 管理查询

标签 reactjs react-admin

我正在使用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过滤器属性非常稀疏,我找不到很好的例子来说明这些对象应该是什么样子。

最佳答案

这完全取决于您的 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/

相关文章:

react-admin - 如何在不使用自定义布局的情况下隐藏应用栏上的配置文件菜单?

reactjs - react 管理中的自定义路由

Nginx 反向代理到 nextjs 和 react-admin

javascript - next-auth:登录功能重定向到/api/auth/error

javascript - 警告 react : setState(. ..):只能更新已安装或正在安装的组件

reactjs - 在 React 中设置 Material UI 的 TextField 组件的 defultValue

reactjs - react 管理员 : onSuccess does not work properly on <Edit> Component

reactjs - 尝试将 Storybook 与 React-admin 一起使用时出现错误 "useField must be used inside of a <Form> component"

reactjs - 在react与redux中,如何进行post请求

reactjs - Material ui 样式的单个 spa 集成问题