微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法将自定义操作与自定义减速器 react-admin 连接起来

如何解决无法将自定义操作与自定义减速器 react-admin 连接起来

8.4 的 react-admin。我一直在尝试实现一个自定义减速器连接的自定义操作,但到目前为止没有任何效果。 我已经在官方文档中为操作端 https://marmelab.com/react-admin/doc/3.8/Actions.html#querying-the-api-with-fetch 和减速器 https://marmelab.com/react-admin/doc/3.8/Admin.html#customreducers 实现了指南的这一部分。问题源于我只能使用发送更新请求的 useUpdate 方法,而不是在没有连接到减速器的情况下使用 get 并且没有明确说明如何将这两件事链接在一起。我也尝试使用较旧的调度操作方式,但仍然无效。请帮助我已经尝试了 2 个星期了。没有任何更新,redux 存储保持不变。

组件

const { data,loading,error } = useQueryWithStore({
        type: 'getList',resource: 'goals',action: "GET_USER_GOALS",payload: { pagination: { page: 1,perPage: 10 },sort: { field: "a-z",order: "ABC" },filter: {} }
    });

减速器

export default (prevIoUsstate = 0,{ type,payload }) => {
    console.log(type)
    if (type === 'GET_USER_GOALS') {
        return payload.rate;
    }
    return prevIoUsstate;
}

我什至写了一个自定义操作 但它说“无法读取未定义的属性'更新'”,我猜在新版本中不支持

import { UPDATE } from 'react-admin';

export const UPDATE_PAGE = 'GET_USER_GOALS';
export const setGoals = (id,data) => {
    return {
        type: UPDATE_PAGE,payload: { id,data: { ...data,is_updated: true } },Meta: { fetch: UPDATE,resource: 'goals' },}
};

管理员

 <Admin
        locale="en"
        customreducers={{ userGoals: userGaolsReducer }}
        loginPage={LoginPage}
        authProvider={authProvider}
        dataProvider={testProvider}
        i18nProvider={i18nProvider}
        history={history}
        dashboard={Dashboard}
        customSagas={[userGoalsSaga]}
      >

解决方法

我也必须将它包含在 store.js 中

  const reducer = combineReducers({
    admin: adminReducer,router: connectRouter(history),userDashboardSettings: userGaolsReducer
  });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。