在 dataProvider react-admin 中使用 dispatch

Posted

技术标签:

【中文标题】在 dataProvider react-admin 中使用 dispatch【英文标题】:Use dispatch inside dataProvider react-admin 【发布时间】:2021-01-21 16:06:25 【问题描述】:

所以我需要在 dataProvider 中调用 dispatch 来更新状态 uploadProgress 以在我的表单中上传视频,我已经在使用 customReducers

//reducers
const uploadProgress = (previousState = 0,  type, payload ) => 
if (type === "ADD_PROGRESS") 
 return payload;

 return previousState;
;

//Admin
 <Admin
  dataProvider=dataProvider
  dashboard=Dashboard
  loginPage=LoginPage
  authProvider=authProvider
  history=history
  customReducers= uploadProgress 
  layout=Layout
  customRoutes=customRoutes
> .... <Admin />

并且 iam 使用 react-redux 中的 connect 将状态作为我的页面组件的 props 发送

const mapStateToProps = (state) => ( uploadProgress: state.uploadProgress );

export default connect(mapStateToProps)(ContentItemEdit);

我将在更新或创建 video_content 时更新uploadProgress 状态,运行上传处理到存储,这将显示进度条,并且我得到了dataProvider 的一些阻塞,因为dataProvider 必须导出为对象不能作为函数来应用连接来调用我的调度,我找不到从 react-admin 使用 connect 或 call store 的方法

  const dataProvider = 
    getList:    (resource, params) => Promise,
    getOne:     (resource, params) => Promise,
    getMany:    (resource, params) => Promise,
    getManyReference: (resource, params) => Promise,
    create:     (resource, params) => Promise,
    update:     (resource, params) => Promise,
    updateMany: (resource, params) => Promise,
    delete:     (resource, params) => Promise,
    deleteMany: (resource, params) => Promise,

"react-admin": "^3.8.3",

【问题讨论】:

【参考方案1】:

你不能在 dataProvider 中调用 dispatchconnect,因为它不知道 React。这是 react-admin 的当前限制。

【讨论】:

好的,谢谢,我已经使用自定义工具栏更改表单提交行为解决了这个问题

以上是关于在 dataProvider react-admin 中使用 dispatch的主要内容,如果未能解决你的问题,请参考以下文章

属性“dataProvider”有多个初始值设定项。(注意:“dataProvider”是“mx.charts.BarChart”的默认属性)。

testng dataprovider接入msyql db初始化参数遇见的问题记录

在 dataProvider react-admin 中使用 dispatch

TestNG中DataProvider的用法

在setupBeforeClass之后有没有办法执行dataprovider函数?

PHPUnit:使用@dataProvider时“找不到类'Eloquent'”