情况:有三个组件用到了同一个方法,后期需要维护,所以抽离出来写在了组件外部,当页面有操作时,需要在外部dispatch一些数据,由于不是在hooks文件中,所以不能使用useDispatch.
之前公司代码使用umi2,可以这样写(此时dva把这个全局方法挂载在window上了):
window.g_app._store.dispatch({
type: 'login/logout',
});
现在升级为了umi3,需要这样写:
import { getDvaApp } from 'umi';
getDvaApp()._store.dispatch({
type: 'login/logout',
payload: {userName:'mm',userId:'001'},
});