如何在Umijs路由包装器中进行异步调用?

问题描述

UMIJS 中,可以为路由或路由组提供包装功能。根据文档,这是一个HOC。

来自https://umijs.org/docs/routing#wrappers

的示例
export default {
  routes: [
    { path: '/user',component: 'user',wrappers: [
        '@/wrappers/auth',],},{ path: '/login',component: 'login' },]
}

请参阅以下示例作为src / wrappers / auth的内容

import { Redirect } from 'umi'
export default (props) => {
  const { isLogin } = useAuth();
  if (isLogin) {
    return <div>{ props.children }</div>;
  } else {
    return <Redirect to="/login" />;
  }
}

使用上述配置,将通过/user验证useAuth用户请求。 src/pages/user呈现或页面重定向/login

我的用例是我想在useAuth()函数中发送POST请求,以检查用户是否已通过身份验证。但是,当我尝试使用useHooks或DVA的connect函数时,包装器组件既不允许异步动作也不能更新。看起来它仅需要同步操作。在这种情况下,除非我以同步方式运行POST请求,否则建议的方式看起来毫无用处。如何在路由包装中使用异步操作?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)