vue.js - 如何在 vuejs 中通过 <router-link/> 将 props 传递给命名 View ?

标签 vue.js vuejs2 vue-router

我是 VueJS 和前端开发的新手。 我希望将一个 props(在本例中是我的俱乐部的 id)传递给我的组件/ View 。

它最初与<router-link :to="{ name: 'club', params: {id: club.id } }">合作。 我的组件调用 Prop “id”,而我的 View (名为 Club)具有参数 props:true;

快进一会儿,我必须添加命名 View 。 (我现在只添加了一个 - 但我将有一个 View 内容和一个导航)。

mode: 'history',
  base: process.env.BASE_URL,
  linkExactActiveClass: 'is-active',
  routes: [
    {
      path: '/',
      name: 'clubs',
      components: {
        content: Clubs
      }
    },
    {
      path: '/club/:id',
      name: 'club',
      props: true,
      components: {
        content: Club
      }
    }
  ]
})

这打破了一切。 在 Vue 扩展中,我可以看到我的 send 将我的 props 作为参数发送(参见附件 1),但是一旦进入 View ,id 就未定义(参见附件 2)。

我错过了什么吗?

附件1 Router Link

附件2 View Data

最佳答案

在这种情况下,您需要为每个命名 View 设置一个 props 值。例如

components: {
  content: Club
},
props: {
  content: true
}

我在文档中找不到对此的合理解释,但它确实在此处的示例中有所体现:

https://router.vuejs.org/guide/essentials/passing-props.html

请注意代码示例中隐藏的以下注释:

// for routes with named views, you have to define the `props` option for each named view:

关于vue.js - 如何在 vuejs 中通过 <router-link/> 将 props 传递给命名 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57807262/

相关文章:

javascript - Vue.js 强制重新渲染包含 v-once 指令的组件

vue.js - Vue test-utils 如何测试 router.push()

javascript - 将表中的行链接到 url

javascript - 如何将主要组件直接导入到 *.vue 文件而不是将其导入到 Vue 中的主 *.js 文件?

typescript - 如何让 cypress.io 向左滑动 ionic ion-item-sliding?

javascript - 是否允许在 `lang` 标签中使用 `style` 属性来标记 VueJS 的 CSS 预处理器语言?如果我们使用它有什么缺点吗?

javascript - 在日历中为特定日期显示背景颜色的问题,在除移动 Safari 之外的所有浏览器上工作正常

vue.js - 如何纠正 vue-router 超出最大调用堆栈大小?

javascript - VueJS 2 + typescript : computed value does not detect property defined by data

javascript - 如何将提及标签文本转换为 <router-link> ? (VUEJS)