Mobx 6 observable 无法与 mobx-router5 正常工作

问题描述

由于某种未知原因从 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 (将#修改为@)