首页 > 解决方案 > 在 dataProvider react-admin 中使用 dispatch

问题描述

所以我需要在 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 将状态作为我的页面组件的道具发送

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,
}

“反应管理员”:“^3.8.3”,

标签: reactjsreduxreact-reduxreact-admin

解决方案


您不能调用dispatchor connectdataProvider因为它不了解 React。这是 react-admin 的当前限制。


推荐阅读