【问题标题】:Custom path for resource route in react-adminreact-admin 中资源路由的自定义路径
【发布时间】:2019-07-02 07:06:27
【问题描述】:

有没有办法为资源指定自定义路径?

示例:<Resource name="User" path="/manageUsers" {...}>

如果不可能“按资源”,例如,我们是否可以让所有 CRUD 页面位于相同的基本路径下,例如:/crud/{/$resource.name},但保留没有该基本路径的自定义路由。

非常感谢。

编辑#1

就上下文而言,我们正在构建一个管理面板,其中包含大量流程,基本上是逐步创建资源。因此,我对 react-admin 库的作用(管理 CRUD 部分)表示赞赏,但我希望在 URL 的方式上具有更大的灵活性。

我需要有一个名为 /manageUsers/ 的部分,其中包含一些数据,例如仪表板,然后列表可能是 /manageUsers/list/

然后我可能需要另一个名为 /customers/ 的部分,它会直接在该页面上列出。

编辑#2

为了给出另一个用例,我尝试使用 graphQL 作为 dataProvider,我不得不重命名我的所有资源,因为其余 API 使用的是 users,而 graphQL 资源是 User。所以我所有的网址现在都不同了!

我希望这样可以更清楚一点。

【问题讨论】:

  • 您能解释一下当前实现的问题吗?你想达到什么目的?
  • @GildasGarcia,请查看我的编辑,感谢您尝试帮助我:)
  • @GildasGarcia,在我上次编辑后你能帮我吗?

标签: react-admin


【解决方案1】:

有没有办法为资源指定自定义路径?

不,目前不支持此功能。解决此问题的一种方法是使用 manageUsers 作为资源名称并将其转换为 dataProvider 中的 User

我需要一个名为 /manageUsers/ 的部分,其中包含一些数据,例如仪表板,然后列表可能是 /manageUsers/list/。

默认也不支持。但是,您可以用自己的替换默认的Resource 组件。它实际上只是为 React Router 交换机内的资源创建路由。请注意,您可能必须覆盖某些组件(例如 Edit)的 redirect 属性,因为当通过 list 时,它们希望列表位于资源根路径。

我不得不重命名我的所有资源,因为其余 API 正在使用用户,而 graphQL 资源是用户

这就是将资源名称转换为后端期望的数据提供者的工作。使用对您的用户有意义的资源名称(网址明智)。

【讨论】:

  • 非常感谢您的详细回答。实际上,我最终尝试使用 manageUsers/customers 作为资源名称并编写一个函数,使用自定义 buildQuery 将这些“类似 url”的资源名称映射到 GraphQL 名称。您能否确认我是否可以在资源名称中使用斜杠?一切似乎都按预期工作,但你可能对我有更多的洞察力。非常感谢。
  • 我不记得有什么会阻止它工作
猜你喜欢
  • 2019-01-02
  • 2015-09-26
  • 2011-01-17
  • 2011-07-05
  • 2012-02-21
  • 2015-04-19
  • 2014-08-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多