【问题标题】:How to pass props to named views through <router-link /> in vuejs?如何在 vuejs 中通过 <router-link /> 将道具传递给命名视图?
【发布时间】:2020-01-08 11:04:04
【问题描述】:

我是 VueJS 和前端开发的新手。 我希望将道具(在本例中为我的俱乐部的 id)传递给我的组件/视图。

它最初与&lt;router-link :to="{ name: 'club', params: {id: club.id } }"&gt; 合作。 我的组件调用了一个道具“id”,而我的视图名为 club 有参数 props:true;

稍后快进,我不得不添加命名视图。 (我现在只添加了一个 - 但我会有一个视图内容和一个导航)。

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),但是一旦在视图上,id 是未定义的(见附件 2)。

我错过了什么吗?

附件 1

附件 2

【问题讨论】:

    标签: vue.js vuejs2 vue-router


    【解决方案1】:

    在这种情况下,您需要为每个命名视图设置一个 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:
    

    【讨论】:

    • 确实有效!谢谢@skirtle :) - 我几乎确定我在研究期间结束了这个文档页面并已经尝试过了,但此时我可能还有其他事情搞砸了:)
    猜你喜欢
    • 2018-12-17
    • 2015-07-18
    • 2021-07-31
    • 2018-02-28
    • 2018-04-27
    • 2020-12-10
    • 1970-01-01
    • 2018-08-03
    • 1970-01-01
    相关资源
    最近更新 更多