crudGetList操作不会从响应中不存在状态数据删除

问题描述 投票:1回答:2

警告:这个问题是具体的反应,管理框架

我试图应用手册,使用数据从服务器到加载内容页做的。这样做,我这样做,取上componentDidMount手册页自定义的页面。在这个功能我称之为反应管理员crudGetList(资源名称,分页,sortingById,过滤器),其中过滤器是{and:[{condition},{language: currentLanguage}]},因为我想在不同的语言的手册。我注意到,有在数据库中不同语言的网页,并使用crudGetList行动过滤器获取正确的情况下,但状态保持旧数据。例如,如果我最初是在英语,语言的变化获取数据并返回到手册页,Redux的状态将有两种语言,而不是当前选择的一个页面。

这是预期的行为?制作手册页了新的要求不应该Redux的状态数据替代将数据从请求来了吗?如果没有预期我应该打开的问题吗?

react-redux react-admin
2个回答
2
投票

反应管理员使用一种叫做乐观的渲染模式。这意味着,如果该应用已经取出在过去的一些实体,如果需要显示这些实体,它首先显示陈旧的实体,然后取出后端,并且如果响应不同,与最新的数据重新渲染在屏幕。

例如,当用户获取的职位名单,反应管理员将这些职位通过ID索引的字典:

{
   123: { id: 123, title: "hello" },
   456: { id: 456, title: "world" },
   ...
}

反应管理员还存储列表中应显示标识符的列表:

[123, 456, ...]

使用这两种性质,反应管理员现在可以显示列表。但它也可以显示一个帖子的细节没有首先击中的服务器。因此,当用户点击在列表中的项目,反应管理员从第一结构使用该数据来显示它向右走,而不必等待服务器响应。

乐观渲染的目的是表现:因为用户并不需要等待与服务器的往返,界面超级活泼。

你的具体情况,我明白,这可能会导致问题,因为存储包含陈旧数据不在所需的语言。我建议你创建一个自定义的传奇,它反应了语言变化的行动,并清除储存,以避免这样的问题。

检查的反应管理员网站定制传奇的文档:

https://marmelab.com/react-admin/Admin.html#customsagas


0
投票

您必须配置了Redux店如何响应新传入的数据。

更具体地讲,这是一个多么“减速”是;你的“行动”(你的情况crudGetList)的数据输入到“减速”,这仅仅是一个指令到店就可以了应该如何根据新的数据调整其形状的功能。

某处在你的应用程序有可能是回应您获取操作减速,但它的配置只是推新的结果旁边的老,而不是取代他们。这是很难知道的,但是,没有看到描述整个终极版“循环”的代码。

在终极版文档都非常优秀。我想从那里开始,并确保你有一个很好的了解,如果数据通过Redux的整个流程,然后去打猎该减速机。

https://redux.js.org/basics/reducers

© www.soinside.com 2019 - 2024. All rights reserved.