Skip to content

src/models下自定义model里使用了useEffect来掉接口,这种情况下如何保证wrappers/auth的鉴权处理? #11824

Answered by fz6m
LXY02 asked this question in Q&A
Discussion options

You must be logged in to vote

在 umi 里的 model 都是全局性质的,也就是说这里面的东西和副作用在应用启动一开始就会执行了。

如果要依靠 umi 内置的功能,比较推荐的做法是在 src/app.tsgetInitialState 里去获取用户的初始信息、权限等状态,之后就可以从 useModel('@@initialState') 里获取,这样就可以在 wrapper / layout 之类的 HOC 里去拦截了,参考 文档

比较现代的做法是使用一种全局状态管理库,比如 jotaivaltio ,然后在应用 root 或者最上层 layout 等位置里 useEffect 调用获取信息的接口,拿到信息后设定到全局状态管理库里,之后就可以在任何想要的位置获取了,在没获取到之前展示全局 loading 即可。

Replies: 2 comments

Comment options

You must be logged in to vote
0 replies
Answer selected by LXY02
Comment options

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
3 participants