在 React-Admin 中扩展 JSON 服务器数据提供程序,这样更新就不会在正文中发送 ID
Extend JSON Server Data Provider in React-Admin so the update do not send the ID in the body
我是第一次使用 react-admin。
更新 (PUT) 时,我的后端不接受正文中的 ID(ID 的引用在 url:http://api.com/item/{id})。
但默认情况下 react-admin 会发送它。
我该如何改变它?我尝试扩展数据提供者,但我不知道如何让它修改主体:
const dataProvider = jsonServerProvider('http://localhost:8000', httpClient);
const myDataProvider = {
...dataProvider,
update: (resource, params) => {
httpClient(`${apiUrl}/${resource}/${params.id}`, {
method: 'PUT',
body: JSON.stringify(params.data),
}).then(({ json }) => ({ data: json }
)).catch(err => {
return console.log(err)
})
console.log(params.data);
},
};
export default myDataProvider;
我想我需要更改 params.data
,删除“id”,但我不能...总是出错。
有什么建议吗?
谢谢!
从数据中删除:
const dataProvider = jsonServerProvider('http://localhost:8000', httpClient);
const myDataProvider = {
...dataProvider,
update: (resource, params) => {
const { id, ...data } = params.data;
// don't forget to return the promise!
return httpClient(`${apiUrl}/${resource}/${params.id}`, {
method: 'PUT',
body: JSON.stringify(data),
})
.then(({ json }) => ({ data: json }))
.catch(err => {
return console.log(err)
})
},
};
export default myDataProvider;
我是第一次使用 react-admin。 更新 (PUT) 时,我的后端不接受正文中的 ID(ID 的引用在 url:http://api.com/item/{id})。
但默认情况下 react-admin 会发送它。
我该如何改变它?我尝试扩展数据提供者,但我不知道如何让它修改主体:
const dataProvider = jsonServerProvider('http://localhost:8000', httpClient);
const myDataProvider = {
...dataProvider,
update: (resource, params) => {
httpClient(`${apiUrl}/${resource}/${params.id}`, {
method: 'PUT',
body: JSON.stringify(params.data),
}).then(({ json }) => ({ data: json }
)).catch(err => {
return console.log(err)
})
console.log(params.data);
},
};
export default myDataProvider;
我想我需要更改 params.data
,删除“id”,但我不能...总是出错。
有什么建议吗?
谢谢!
从数据中删除:
const dataProvider = jsonServerProvider('http://localhost:8000', httpClient);
const myDataProvider = {
...dataProvider,
update: (resource, params) => {
const { id, ...data } = params.data;
// don't forget to return the promise!
return httpClient(`${apiUrl}/${resource}/${params.id}`, {
method: 'PUT',
body: JSON.stringify(data),
})
.then(({ json }) => ({ data: json }))
.catch(err => {
return console.log(err)
})
},
};
export default myDataProvider;