问题描述
由于某种未知原因从 Mobx 5 迁移到 Mobx 6 后,当路由器路径改变时,组件停止重新渲染。 routerStore5
似乎不是 observable
,即使它是由它装饰的。 routerStore5
内的状态正在发生变化,但组件不会对这种状态变化做出反应。在 Mobx 5 中它运行良好,但在新的 Mobx 中却没有。包兼容性有问题吗?
这个连接用作应该可以访问 Mobx 存储的组件的装饰器
export function componentConnect(target) {
return inject('stores')(withTheme(observer(target)));
}
路由器商店可通过上面的连接访问
export class RouterStore {
@observable routerStore5: RouterStore5;
constructor() {
const routerStore = new RouterStore5();
const router = createRouter(routes,{
defaultRoute: 'home',queryParamsMode: 'loose'
});
router.usePlugin(mobxPlugin(routerStore));
router.usePlugin(browserPlugin({ useHash: false }));
makeObservable(this);
this.routerStore5 = routerStore;
this.routerStore5.router.start();
}
}
这里是使用过的 npm 包列表:
"router5": "^8.0.1","router5-plugin-browser": "^8.0.1","react-router5": "^8.0.1","mobx": "^6.1.8","mobx-react": "^7.1.0","mobx-router5": "^4.3.0","mobx-utils": "^6.0.3",
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)