我遇到了一个先setItem还是先getItem的BUG。
如果这样写
我感觉这几个yield put是异步的。有时候yield put app/query
还没执行完,直接跳转 yield put(routerRedux.push(from))
了导致我的程序先get到null,后set。
后来我把跳转写到'app/query'
的最后一行了,它就永远是先setItem
然后 subscription里面的getItem
subscriptions: {
setupWs({ dispatch, history }) {
history.listen(({ pathname }) => {
let userId = localStorage.getItem('stompUserId');
});
}
});
effects: {
* query({
localStorage.setItem('stompUserId', id);
if (from && from !== '/login') {
yield put(routerRedux.push(from))
} else if (locationPathname === '/login') {
yield put(routerRedux.push('/dashboard'))
}
})
}
dva-knowledgemap