在Mac OS中使用useModel会出现需要将名称写两次的情况,在Windows中写法也不一样.如下图所示:

const { refresh } = useModel('@@initialState');
// Todo Mac OS下要写login.login ?
const { loading, signIn } = useModel('login.login');
// Todo Windows下要写login
const { loading, signIn } = useModel('login');
希望官方能修复一下这个问题,各个平台代码不一样不太好.
Provide a mini GitHub repository which can reproduce the issue. Use
yarn create @umijs/umi-appthen upload to your GitHub
Steps to reproduce the behavior: 1. 2.
Expected behavior 1. 2.
之前在 windows 环境下是有问题的,在 POSIX 下是预期行为。目前 windows 下的行为在 [email protected] 已经修正。
只有全局的 model 是没有前缀的,为了避免重名,建在页面里的 models 都是有前缀的,举几个例子
| path | namespace |
|-|-|
| src/models/global.ts | global |
| src/pages/models/user.js | user |
| src/pages/DashBoard/models/drawer.ts | DashBoard.drawer |
| src/pages/DashBoard/stat.model.ts | DashBoard.stat |
| src/pages/DashBoard/Chart/models/data.ts | DashBoard.Chart.data |
Most helpful comment
之前在 windows 环境下是有问题的,在 POSIX 下是预期行为。目前 windows 下的行为在 [email protected] 已经修正。
只有全局的 model 是没有前缀的,为了避免重名,建在页面里的 models 都是有前缀的,举几个例子
| path | namespace |
|-|-|
| src/models/global.ts | global |
| src/pages/models/user.js | user |
| src/pages/DashBoard/models/drawer.ts | DashBoard.drawer |
| src/pages/DashBoard/stat.model.ts | DashBoard.stat |
| src/pages/DashBoard/Chart/models/data.ts | DashBoard.Chart.data |