如何解决React Admin的useUpdateMany挂钩使空放置
在使用useUpdateMany的React Admin钩子时遇到问题。
如果我尝试使用useUpdate,它可以工作,但对于许多人来说,它发送的是空信息,这是一些代码:
const BulkActions = props => {
const refresh = useRefresh();
const notify = useNotify();
const unselectAll = useUnselectAll();
const [updateMany,{ loading,error }] = useUpdateMany(
props.resource,props.selectedIds,{ totalCommission: '100' },{
onSuccess: () => {
refresh();
notify('Information updated','info',{},true);
unselectAll(props.resource);
},onFailure: error => notify('Error: posts not updated','warning'),undoable: true
}
);
return (
<Fragment>
<Button label="Confirm" variant="contained" onClick={ updateMany } disabled={loading} />
</Fragment>
);
};
我还可以看到获取信息时正在触发
{
type: 'CUSTOM_FETCH_OPTIMISTIC',payload: {
ids: [
'/api/purchases/22'
],data: {
totalCommission: '100'
}
},meta: {
resource: 'purchases',fetch: 'UPDATE_MANY',optimistic: true
}
}
编辑
这是dataProvider
import React from "react";
import { Redirect,Route } from "react-router-dom";
import {API_BASE_URL} from '../constants/constants'
import { hydraDataProvider as baseHydraDataProvider,fetchHydra as baseFetchHydra } from "@api-platform/admin";
import { parseHydraDocumentation } from "@api-platform/api-doc-parser";
const entrypoint = API_BASE_URL;
const fetchHeaders = { Authorization: `Bearer ${localStorage.getItem("token")}` };
const fetchHydra = (url,options = {}) => baseFetchHydra(url,{
...options,headers: new Headers(fetchHeaders),});
const apiDocumentationParser = entrypoint => parseHydraDocumentation(entrypoint,{ headers: new Headers(fetchHeaders) })
.then(
({ api }) => ({ api }),(result) => {
const {api,status} = result;
if (result.status === 401) {
return Promise.resolve({
api,status,customRoutes: [
<Route path="/" render={() => <Redirect to="/login" />} />,],});
}
return Promise.reject(result);
},);
let dataProvider = baseHydraDataProvider(entrypoint,fetchHydra,apiDocumentationParser,true);
export default dataProvider;
有什么主意吗?
解决方法
我找到了解决方案,如您所见here,api-platform / admin软件包发送一个空对象时出错。 解决方案来自2.4.4版本
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。