首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过vue-styleguidist显示使用$route的组件时出现问题

通过vue-styleguidist显示使用$route的组件时出现问题
EN

Stack Overflow用户
提问于 2019-10-05 08:22:39
回答 1查看 201关注 0票数 0

我有一些在内部使用this.$route的组件,用于各种用途。一些简化的示例是,使用this.$route.name查找页面的i18n字符串:

代码语言:javascript
复制
<h1>New {{ $t($route.name + '.label') }}</h1>

或者观看$route并加载某些内容:

代码语言:javascript
复制
watch: {
    $route: {
      handler: 'loadItem',
      immediate: true
    }
  }

每当这些组件出现在vue-styleguidist中时,我就会在浏览器控制台中看到各种错误,并且组件示例没有任何内容呈现:

代码语言:javascript
复制
index.js?1ef8:1 [Vue warn]: Error in callback for immediate watcher "$route": "TypeError: Cannot read property 'id' of undefined"

found in

---> <MyComponent> at src/components/MyComponent.vue
       <Anonymous>
         <Root>

我故意不将vue-router或我的路由对象导入到styleguide中,因为这不受支持-而且它会导致重定向、路由保护等方面的很多问题……这与风格指南无关。

我想,我真正想做的是,当组件出现在样式向导中时,在组件内部模拟this.$route --但我不知道该怎么做。

另一种选择是将路由信息作为属性传递到组件中。这将正确地将组件与路由器解耦并修复问题,但它将涉及到对每个组件和路由的更改。

EN

回答 1

Stack Overflow用户

发布于 2019-11-15 08:10:13

因此,我最终重构了所有组件,以传递它们用作属性的路由属性。这可以正确地将组件与路由器解耦,并修复问题,但这需要大量的工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58244408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档