如何解决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 举报,一经查实,本站将立刻删除。