如何解决注销 react-admin 时出错
当用户注销时,由于 redux 存储在您进入登录页面之前被清除,我们的组件中会出现许多错误。
我们有一些使用 useQueryWithStore 的组件。下面是一个例子:
const { data,total,error,loaded } = useQueryWithStore({
type: "getList",resource: "tasks",payload: {
pagination: { page: 1,perPage: 5 },sort: { field: "date_end",order: "ASC" },},});
然后我们在渲染组件之前检查数据是否已经加载并且没有错误。
return (
{!loaded && !error ? (
<Loading />
) : (
...our component rendering data...
)
)
问题在于,当用户注销时,它会在导航到登录页面之前先清除 redux 存储。这意味着 !loaded
和 !error
都为真,并且它会尝试呈现组件。但是因为 redux 存储已经被清除,data
是未定义的。
你会如何最好地处理这个问题?
- 为数据添加默认值? -
const {data = [],loaded}
- 检查数据是否未定义? -
{!loaded && !error && data}
- 使用可选链接? - 对
data
的任何引用都可以使用可选链 -data?.map(...map function...)
- 发出拉取请求以更改注销顺序? - 我们可以导航到登录页面或注销页面,然后清除 redux 存储,而不是先清除 redux。
- 我没有想到更好的方法?
想法?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。