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的逻辑即可获取数据。
分类:
UmiJS
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧