添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

升级Umi 4之后Wrappers里无法获取routers信息

//升级到umi4之前,可以通过如下方式获取
export default (props: IRouteComponentProps) => { 
const { initialState } = useModel('@@initialState'); 
const { currentUser } = initialState || {}; 
const { children, route } = props; //use route do something };
//但是我升级到umi4之后,这个props无论怎么获取都是空的,我已经尝试了如下方式:
export default (props: any) => {  }
//也尝试了使用 const props = useOutletContext ();
//所以,umi4 中我应该怎么做才能在wrappers中获取到当前route的信息

现在通过 useLocation, matchRoutes, useAppData或直接使用 useSelectedRoutes

import { Link, Outlet, useLocation, matchRoutes, useAppData } from "umi";
import styles from "./index.less";
export default function Layout() {
  const location = useLocation();
  const { clientRoutes } = useAppData();
  const routes = matchRoutes(clientRoutes, location.pathname);
  return (
    <div className={styles.navs}>
        <Outlet/> //router 6
                                    使用 Umi 搭建项目时候有的时候会出现这种错误,模块““umi”” ““@umijs/max”” 没有导出成员useRequest” “request”。
                                    2)command + p,输入:restart TS Server,重启 TS 服务。首先,查看下 tsconfig.json 文件的配置是否正确。1)关闭vscode,重新打开项目查看报错消失。有报错提示:模块'umi'没有导出成员XXX。原因:ts 对 umi 的识别。
                                    umijs基于React的封装框架,常用的插件已经全部集成到框架中,开箱即用。
umi=react+less+antd(实现按需加载)+umi-request+dva(react+redux-saga)
                                    使用umi+dva时,使用useSelector useDispatch 替代connect
import {useDispatch} from 'umi';
const Home=()=>{
    const dispatch = useDispatch()
    const getData=()=>{
        dispatch({
            type:"home/get"
    return (
        <div&g