问题描述
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
});