javascript - React-admin 的 dataProvider 是否应该对数据应用格式?

标签 javascript reactjs redux dataprovider react-admin

这个问题是概念性的,dataProvider 是否应该在将数据返回到 react-admin 的前端之前对数据应用格式,或者 dataProvider 必须只扮演数据 getter 的 Angular 色并且必须始终以来自后台的格式返回数据 -结束服务?你怎么看?

如果你从后端获取的数据嵌套很深,结构很复杂,需要更简单的展示,你会怎么做?你会在哪里减少/格式化它:

  1. 在 dataProvider 中,在从服务器接收到它之后发送到 React-admin 的 UI 之前,或者
  2. 在用户界面(又名资源 View )或可能
  3. 通过使用自定义 reducer :https://marmelab.com/react-admin/Actions.html#using-a-custom-reducer

在您看来,最优雅、最概念化的正确方法是什么?

最佳答案

简短回答:您可以根据需要同时执行这两种操作。

这实际上是一个很好的问题,答案可能是:这取决于用例。

首先,如果您谈论的是与特定 API 格式(例如 ODATA 或 GraphQL)相关的通用数据提供程序,则最好在数据提供程序中转换数据。如果此数据提供者是开源的,则更是如此。

作为the documentation says :

[A data provider] is the place to translate data queries to HTTP requests, and HTTP responses to data responses.

也就是说,如果您谈论的是为您自己的自定义 API(或组合或 API)制作的特定数据提供程序,您可以同时进行:数据提供程序转换或使用自定义缩减器,或两者兼而有之。

在数据提供者中进行数据转换没有错。你只需要知道 React Admin 缓存来自 provide 的数据到它的 redux store 并做一些像 optimistic rendering or undo actions 这样的奇特的事情。 .

关于javascript - React-admin 的 dataProvider 是否应该对数据应用格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54305022/

相关文章:

javascript - 自定义jQuery滚动效果

angular - 选择器 NGRX 内的调度操作

javascript - 从 Redux 中导出值(value),使其全局化

javascript - 可以用 `onEnter` 延迟组件渲染吗?

javascript - 如何处理在 React 应用程序中导致延迟的大型原始图像重新渲染?

javascript - 拖放不起作用 : 'dropEffect' of undefined

javascript - 提交表单后如何使用清除缓存硬刷新 Internet Explorer?

javascript - 如何隐藏选择选项的旧样式版本?

reactjs - redux-react-route v4/v5 push() 在 thunk Action 中不起作用

javascript - 如何使用自定义 DOM 节点在 React 组件中进行渲染