【问题标题】:vuejs Navbar links not workigvue js导航栏链接不起作用
【发布时间】:2019-07-28 07:35:44
【问题描述】:

我的 vuejs 应用程序有一个导航栏,其代码如下。 问题是导航栏显示其颜色,但导航栏上没有可用链接。控制台也会显示类似 click here to view the error 的错误。当我通过stackoverflow搜索时,我发现一些与我的问题相关的答案正在将 auth: '' 更改为 auth: {} 。但它也不起作用。所以任何人都可以帮我解决这个问题。谢谢

<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
 })
}
}

这是Router文件夹的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
    }
  ]
})

【问题讨论】:

  • 您的RouterLink 组件似乎缺少一个名为“to”的prop — 您能在此处也包含组件代码吗?
  • @lto Pizarro 请检查更新的代码

标签: vue.js vuejs2 vue-component vuex vue-router


【解决方案1】:

您在最后一个链接中缺少to。将href 替换为to,您的错误应该会消失。

     <li v-if="auth == 'loggedin'" class="nav-item">
      <router-link class="nav-link" to="">Logout</router-link>
    </li>

关于未定义的name 的错误也应该消失了。这可能是因为它找不到 undefined 所定义的密钥为 router-link 的路由

如果这不能解决问题,您可能需要发布更多代码。

【讨论】:

  • 我已将 href 更改为 ,to 但它也不起作用。
  • 这是App.vue的代码
  • 我已经将所有属性都指向了属性,但仍然无法正常工作。请帮忙
  • 看看jsfiddle.net/13Lz2xfqhref 替换为to 修复了missing required prop: "to" 错误
猜你喜欢
  • 2018-03-25
  • 2015-04-17
  • 2017-08-31
  • 2020-12-31
  • 2018-03-21
  • 2016-05-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多