Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs React Admin-未找到API响应时处理数据_Reactjs_React Admin - Fatal编程技术网

Reactjs React Admin-未找到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重定向到编辑页面,向我显示新数据,然

我正在使用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重定向到编辑页面,向我显示新数据,然后使用响应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,然后您的数据提供者承诺才会返回