在 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;