[英]Passing props via router doesn't work
我正在使用VueJS 2.3.3和coffescript,並且試圖將prop從路由器傳遞到組件,但是沒有成功。 代碼不是我的,所以我在弄清楚我在做什么錯時遇到了麻煩。 這是我的路由器:
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。
誰能幫我找出我所缺少的嗎?
我找到了解決方案。 當我使用命名路線時,我必須像下面這樣配置道具:
props:
global_loader: false
header: false
app: (route) -> ({ has_groups: true })
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.