问题描述
我使用Webpack 4,Typescript(ts-loader)进行了简单的设置,并且将React v16.13与mobx5和mobx-react6一起使用。最近引起我注意的是,在热重装模块时-我立即丢失了所有存储在React.Context
中的存储数据。
举个例子:
const providers = {
userStore: new UserStore(),...
}
export const storeContext = createContext(providers);
//
//useStore.ts
import { useContext } from 'react';
import { storeContext } from './providers';
export const useStore = () => useContext(storeContext);
//
// App.tsx
const initUser = useCallback(async () => {
try {
await userStore.getUser();
} catch {
} finally {
appStore.setAppLoaded();
}
},[appStore,userStore]);
useEffect(() => {
if (!appStore.token) {
appStore.setAppLoaded();
return;
}
initUser();
},initUser]);
每当我更新组件或商店时-发生HMR后,我都会丢失状态,并且会发生这些用于加载网页的初始操作(根据在不同组件中使用的存储而不同的操作)。我在想这与钩子的依赖关系有关。是否有适当的方法在钩子中建立store
依赖关系,以使“完整状态刷新”不会发生,或者我在这里漏了一点?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)