升级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