【问题标题】:Use dispatch inside dataProvider react-admin在 dataProvider react-admin 中使用 dispatch
【发布时间】: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",

【问题讨论】:

    标签: reactjs redux react-redux react-admin


    【解决方案1】:

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

    【讨论】:

    • 好的,谢谢,我已经使用自定义工具栏更改表单提交行为解决了这个问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多