vue js 导航栏链接不起作用
vuejs Navbar links not workig
我的 vuejs 应用程序有一个导航栏,其代码如下。
问题是导航栏显示了它的颜色,但导航栏上没有可用的链接。控制台也显示这样的错误 click here to view the error 。当我搜索 Whosebug 时,我发现一些与我的问题相关的答案正在将 auth: '' 更改为 auth: {} 。但它确实有效。所以请帮助我修复 this.Thanks
<template>
<nav class="navbar navbar-expan-lg navbar-dar bg-primary rounded">
<button class="navbar-toggler"
type="button"
data-toggle="collapse"
data-target="#navbar1"
aria-controls="navbar1"
aria-expanded="false"
aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse justify-content-md-center" id="navbar1">
<ul class="navbar-ul">
<li class="nav-item">
<router-link class="nav-link" to="/home">Home</router-link>
</li>
<li v-if="auth == ''" class="nav-item">
<router-link class="nav-link" to="/login">Login</router-link>
</li>
<li v-if="auth == ''" class="nav-item">
<router-link class="nav-link" to="/register">Register</router-link>
</li>
<li v-if="auth == 'loggedin'" class="nav-item">
<router-link class="nav-link" to="/profile">Profile</router-link>
</li>
<li v-if="auth == 'loggedin'" class="nav-item">
<router-link class="nav-link" to="/logout">Logout</router-link>
</li>
</ul>
</div>
</nav>
</template>
<script>
import EventBus from './EventBus'
export default {
data () {
return {
auth: '',
user: ''
}
},
methods: {
logout () {
localStorage.removeItem('usertoken')
}
},
mounted () {
EventBus.$on('logged-in', status => {
this.auth = status
})
}
}
这是路由器文件夹index.js
import Vue from 'vue'
import Router from 'vue-router'
import Home from '@/components/Home'
import Login from '@/components/Login'
import Register from '@/components/Register'
import Profile from '@/components/Profile'
Vue.use(Router)
export default new Router({
routes: [
{
path: '/',
name: 'Home',
component: Home
},
{
path: '/login',
name: 'Login',
component: Login
},
{
path: '/register',
name: 'Register',
component: Register
},
{
path: '/profile',
name: 'Profile',
component: Profile
}
]
})
您在上一个 link 中缺少一个 to
。将 href
替换为 to
,您的错误应该会消失。
<li v-if="auth == 'loggedin'" class="nav-item">
<router-link class="nav-link" to="">Logout</router-link>
</li>
未定义的关于 name
的错误也应该消失了。这可能是因为它无法找到 router-link
定义的具有键 undefined
的路由
如果这不能解决问题,您可能需要 post 更多代码。
我的 vuejs 应用程序有一个导航栏,其代码如下。 问题是导航栏显示了它的颜色,但导航栏上没有可用的链接。控制台也显示这样的错误 click here to view the error 。当我搜索 Whosebug 时,我发现一些与我的问题相关的答案正在将 auth: '' 更改为 auth: {} 。但它确实有效。所以请帮助我修复 this.Thanks
<template>
<nav class="navbar navbar-expan-lg navbar-dar bg-primary rounded">
<button class="navbar-toggler"
type="button"
data-toggle="collapse"
data-target="#navbar1"
aria-controls="navbar1"
aria-expanded="false"
aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse justify-content-md-center" id="navbar1">
<ul class="navbar-ul">
<li class="nav-item">
<router-link class="nav-link" to="/home">Home</router-link>
</li>
<li v-if="auth == ''" class="nav-item">
<router-link class="nav-link" to="/login">Login</router-link>
</li>
<li v-if="auth == ''" class="nav-item">
<router-link class="nav-link" to="/register">Register</router-link>
</li>
<li v-if="auth == 'loggedin'" class="nav-item">
<router-link class="nav-link" to="/profile">Profile</router-link>
</li>
<li v-if="auth == 'loggedin'" class="nav-item">
<router-link class="nav-link" to="/logout">Logout</router-link>
</li>
</ul>
</div>
</nav>
</template>
<script>
import EventBus from './EventBus'
export default {
data () {
return {
auth: '',
user: ''
}
},
methods: {
logout () {
localStorage.removeItem('usertoken')
}
},
mounted () {
EventBus.$on('logged-in', status => {
this.auth = status
})
}
}
这是路由器文件夹index.js
import Vue from 'vue'
import Router from 'vue-router'
import Home from '@/components/Home'
import Login from '@/components/Login'
import Register from '@/components/Register'
import Profile from '@/components/Profile'
Vue.use(Router)
export default new Router({
routes: [
{
path: '/',
name: 'Home',
component: Home
},
{
path: '/login',
name: 'Login',
component: Login
},
{
path: '/register',
name: 'Register',
component: Register
},
{
path: '/profile',
name: 'Profile',
component: Profile
}
]
})
您在上一个 link 中缺少一个 to
。将 href
替换为 to
,您的错误应该会消失。
<li v-if="auth == 'loggedin'" class="nav-item">
<router-link class="nav-link" to="">Logout</router-link>
</li>
未定义的关于 name
的错误也应该消失了。这可能是因为它无法找到 router-link
undefined
的路由
如果这不能解决问题,您可能需要 post 更多代码。