【问题标题】:Passing props via router doesn't work通过路由器传递道具不起作用
【发布时间】:2017-05-26 05:32:34
【问题描述】:

我正在使用 VueJS 2.3.3 和 coffescript,我正在尝试将道具从路由器传递给组件,但我没有成功。代码不是我的,所以我很难弄清楚我做错了什么。这是我的路由器:

App = require './views/App'

Shared = {
  header: require('./views/shared/header'),
  global_loader: require('./views/shared/global_loader.vue')
}

view = (view_name) ->
  require("./views/#{view_name}")

componentize = (view_name, options = {}) ->
  options.include_header ?= true

  component = options.component || {}

  component.app ?= view(view_name)
  component.header = Shared.header if options.include_header

  component

exports.routes = [
  {
    path: '/',
    component: App
    children: [
      {
        path: '/component',
        components: componentize('path/to/component'),
        props: { has_groups: true }
      },
      ...
    ]
  }
  ...
}

这是我的 App.vue 代码:

  <template lang="pug">
    #app-wrapper
      transition(name="fade")
        router-view(name="global_loader")

      #header-wrapper
        router-view(name="header")

      #current-view-wrapper.container
        transition(name="enter")
          router-view(name="app")
    </template>

在我的组件上,我照常接收道具:

props:
   has_groups:
      default: false

一切正常,除了 has_groups 没有从路由器接收到正确的 prop 值。它不会更改为 true。

谁能帮我找出我错过了什么?

【问题讨论】:

    标签: javascript coffeescript vue.js vuejs2 vue-router


    【解决方案1】:

    我找到了解决方案。当我使用命名路由时,我必须配置如下道具:

    props:
      global_loader: false
      header: false
      app: (route) -> ({ has_groups: true })
    

    【讨论】:

      猜你喜欢
      • 2021-06-27
      • 2021-09-13
      • 2020-01-31
      • 2020-11-12
      • 2017-07-12
      • 2020-04-03
      • 1970-01-01
      • 2018-10-18
      • 2021-01-02
      相关资源
      最近更新 更多