你瞅啥呢

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 @ 2022-04-02 10:34  叶乘风  阅读(747)  评论(0)    收藏  举报