Reactjs React Admin-未找到API响应时处理数据
我正在使用React Admin和restapi 我正在努力创造动作 问题是API没有维护创建的新元素,因此,当我执行POST操作时,API响应将使用新记录,例如:Reactjs React Admin-未找到API响应时处理数据,reactjs,react-admin,Reactjs,React Admin,我正在使用React Admin和restapi 我正在努力创造动作 问题是API没有维护创建的新元素,因此,当我执行POST操作时,API响应将使用新记录,例如: { "first_name":"John", "last_name":"Doe", "email":"jdoe@mail.com", "id":"115", "createdAt":"2019-11-26T21:36:40.165Z" } 但在此之后,默认情况下React Admin重定向到编辑页面,向我显示新数据,然
{
"first_name":"John",
"last_name":"Doe",
"email":"jdoe@mail.com",
"id":"115",
"createdAt":"2019-11-26T21:36:40.165Z"
}
但在此之后,默认情况下React Admin重定向到编辑页面,向我显示新数据,然后使用响应id进行getOne
调用,但由于API没有保存我的新元素,因此当React Admin执行get
到https://reqres.in/api/users/115
我想问的是,是否可以存储和获取临时数据,并且不进行getOne
调用以避免错误?另外,我如何将用户与新用户一起列出?因为当React管理员调用getList
时,新元素将不在该列表中
我有数据提供程序的基本功能:
create: (resource, params) => httpClient(`${apiUrl}/${resource}`, {
method: 'POST',
body: JSON.stringify(params.data),
}).then(({ json }) => ({
data: { ...params.data, id: json.id },
})),
getOne: (resource, params) => httpClient(`${apiUrl}/${resource}/${params.id}`).then(({ json }) => ({
data: json.data,
})),
谢谢。我不确定我是否理解:您的API对帖子的回答是OK,但对同一资源标识符的后续GET调用不会返回记录?如果是这种情况,那么您的API不是RESTful的,并且react admin可能不适合您的用例 我认为有两种可能的解决办法:
Create
组件中,添加redirect=“list”
prop以重定向到列表而不是细节视图。这样,接口就不会中断——即使新记录会很快出现(乐观呈现),然后消失(一旦GET请求的响应到达时没有新记录)。您还可以通过设置undoable=false
禁用乐观渲染,这将消除闪烁dataProvider.create()
(或react admin 2.x中的create
)中,在API响应到达后不要立即返回。相反,每x秒ping一次服务器,以查看GET请求是否最终可以看到post,然后您的数据提供者承诺才会返回我不确定我是否理解:您的API对POST的回答是OK响应,但对同一资源标识符的后续GET调用不会返回记录?如果是这种情况,那么您的API不是RESTful的,并且react admin可能不适合您的用例 我认为有两种可能的解决办法:
Create
组件中,添加redirect=“list”
prop以重定向到列表而不是细节视图。这样,接口就不会中断——即使新记录会很快出现(乐观呈现),然后消失(一旦GET请求的响应到达时没有新记录)。您还可以通过设置undoable=false
禁用乐观渲染,这将消除闪烁dataProvider.create()
(或react admin 2.x中的create
)中,在API响应到达后不要立即返回。相反,每x秒ping一次服务器,以查看GET请求是否最终可以看到post,然后您的数据提供者承诺才会返回