使用 bootstrap-vue b-nav-item 将 props 传递给 vue-router

Posted

技术标签:

【中文标题】使用 bootstrap-vue b-nav-item 将 props 传递给 vue-router【英文标题】:pass in props to vue-router, with boostrap-vue b-nav-item 【发布时间】:2020-04-17 01:59:30 【问题描述】:

我正在尝试将我的 SPA 从加载组件的模式更改为加载组件的路由页面。我可以在 html 中使用 to="/fixtures" 打开一个页面,但我不能传入一个包含一些数据的 prop 的组件。如何使用 vue-router 和 bootstrap-vue <b-nav tabs> <b-nav-item> 传递 fixtures 的道具?

Home.vue 不工作:

<b-nav-item to="/fixtures" :fixtures="fixtures">Fixtures</b-nav-item>

来自路由器的 index.js:

import Vue from "vue";
import VueRouter from "vue-router";
import Home from "@/components/Home.vue";
import Scorers from "@/components/Scorers.vue"
import LeagueTable from "@/components/LeagueTable";
import Fixtures from "@/components/Fixtures";

Vue.use(VueRouter);

export default new VueRouter(


  routes: [
    
      path: "/",
      name: "Home",
      component: Home
    ,
    
      path: "/fixtures",
      name: "Fixtures",
      component: Fixtures,
      props: true
    

  ],
  mode: "history"
);

使用模态此方法有效:

<b-tab title="Fixtures">
      <Fixtures :fixtures="fixtures" />
    </b-tab>

【问题讨论】:

【参考方案1】:

要将道具作为路线的一部分传递,请使用:

<b-nav-item :to=" path: '/fixtures', props:  fixtures: fixtures  ">Fixtures</b-nav-item>

【讨论】:

仍然无法正常工作,在我的 Fixtures.vue 文件中,我收到了固定装置的道具作为手表:,然后执行一些方法来创建一个新数组,然后使用 v-for 循环在一张桌子上,你能在组件文件夹中看到这里吗?该组件适用于模态但不适用于路由器codesandbox.io/s/flamboyant-carson-sm9j0 您可能需要将 :to 设为计算属性.. 但不是积极的副手。

以上是关于使用 bootstrap-vue b-nav-item 将 props 传递给 vue-router的主要内容,如果未能解决你的问题,请参考以下文章

使用 bootstrap-vue 运行 jest 时的问题

如何使用 Vue 3 并添加插件 Bootstrap-vue?

bootstrap-vue 多级下拉菜单

vee-validate 不能与 bootstrap-vue 一起使用

如何使用 bootstrap-vue 上传多个文件

Bootstrap-Vue,在条件下显示工具提示