我正在使用vue 2.6.11
,vuetify 2.2.9
和ziggy 0.8.1
. 对于 Vuetify 选项卡,我有以下内容:
<template>
<v-tabs
background-color="transparent"
slider-color="secondary"
icons-and-text
dark
:value="`${route().current()}`"
v-model="active_tab"
>
<v-tab
:href="route('project.projects.show', $page.project.id)"
link
exact
key="project.projects.show"
>
Project
</v-tab>
<v-tab
:href="route('project.projects.company', $page.project.id)"
link
exact
key="project.projects.company"
>
Company
</v-tab>
<v-tab
:href="route('project.invoices.index', $page.project.id)"
link
exact
key="'project.invoices.index"
>
Invoices
</v-tab>
</v-tabs>
</template>
<script>
export default {
data()
{
return {
active_tab: `${route().current()}`,
}
},
}
</script>
根据它的位置route().current()
返回不同的值。它返回完整的<template>
URL,而<script>
它只返回 Laravel 路由名称。问题是即使键和route().current()
匹配,相应的选项卡仍然没有设置为活动。
看过Vuetify: How to preselect active tab? 但没有一个答案有效。
更新
再看一遍后发现active_tab: `${route().current()}`,
总是设置为错误的 URL。例如,当在 invoices 路由上时,它仍然返回项目的 url。所以它与ziggy有关。