你瞅啥呢

2021/04/17 umi中的connect是什么

2021/04/17
场景:正在解决页面一个由于数据为空导致组件不能正确加载的问题,定位到connect,数据来源:connect注入的user参数;
请看代码👇:

export default connect(({ user }) => ({
currentUser: user.currentUser,
}))(AvatarDropdown);

这是导出一个名为AvatarDropdown的react组件一行大妈,我要讲的是connect和user;
connect是从一个叫umi的东西导出的(import { connect } from 'umi';);
connect中的user是我定义好的一个变量,它来自于dva的变量池(dva对state的区分是根据namespace的),currentUser继承于user。
如果user没有值,那么就是定义user的地方没有值传递给user,加入现在的问题就是刷新后,页面的用户组件显示不出来,user没有数据,而user的数据源来自这儿👇

复制代码
*refreuser({ payload }, { call, put }) {
const { status, errmsg, data } = yield call(user_refresh, payload);
yield put({
type: 'xxxxxx👴',
payload: { status, errmsg },
});
if (status === 'ok') {
const { usermsg, uadmin, upper } = data;
updateStorage(usermsg, 'ok'); // 刷新成功,将数据写入缓存 // 设置全局用户个人信息
reloadAuthorized();
yield put({
type: 'user/saveCurrentUser', // user.js中自定义的方法
payload: data
});
} else {
message.warning(errmsg); // 刷新失败!
}
},
复制代码

以上代码中的payload会传递到user里面,而payload来源于data,只要修改data的逻辑即可获取数据。

posted @   叶乘风  阅读(689)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示