问题描述
在 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 (将#修改为@)