微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

注销 react-admin 时出错

如何解决注销 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 是未定义的。

你会如何最好地处理这个问题?

  1. 为数据添加认值? - const {data = [],loaded}
  2. 检查数据是否未定义? - {!loaded && !error && data}
  3. 使用可选链接? - 对 data 的任何引用都可以使用可选链 - data?.map(...map function...)
  4. 发出拉取请求以更改注销顺序? - 我们可以导航到登录页面或注销页面,然后清除 redux 存储,而不是先清除 redux
  5. 我没有想到更好的方法

想法?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。