【问题标题】:Vue2.0 Encounter push undefined occurs during router.pushVue2.0在router.push期间遇到push undefined
【发布时间】:2017-05-04 11:25:00
【问题描述】:

我正在开发一个项目,该项目试图在主菜单显示的子菜单列表上实现功能路由。每个子菜单都有自己的特定名称,我想根据子菜单的名称将其附加并路由到我想要实现的route.path

模板

<li v-for='child in item.children'>
   <a href="#"  v-on:click.prevent="navigate(child.text)">{{child.text}}</a>
   <!--<router-view v-bind:to="'/trafficSetting/' + child.text">{{ child.text }}</router-view>-->
</li>

脚本

navigate (to) {
  alert(to)
  this.$router.push(to)
}

Main.JS

Vue.use(VueRouter)
Vue.use(VueResource)
// Vue.use(MintUI)
// define routes
const Home = resolve => require(['./components/home.vue'], resolve)
const trafficSetting = resolve => require(['./components/trafficSetting.vue'], resolve)
const seedResourcesManagement = resolve => require(['./components/seedResourcesManagement.vue'], resolve)
const driverUserManagement = resolve => require(['./components/driverUserManagement.vue'], resolve)
const whiteblackListManagement = resolve => require(['./components/whiteblackListManagement.vue'], resolve)
const VPNserverManagement = resolve => require(['./components/VPNserverManagement.vue'], resolve)
const routes = [
    {path: '/', component: Home},
    {path: '/trafficSetting', name:'trafficS', component: trafficSetting},
    {path: '/seedResourcesManagement', component: seedResourcesManagement},
    {path: '/driverUserManagement', component: driverUserManagement},
    {path: '/whiteblackListManagement', component: whiteblackListManagement},
    {path: '/VPNserverManagement', component: VPNserverManagement}
]

这会导致

Uncaught TypeError: Cannot read property 'push' of undefined

我该如何解决这个问题?

【问题讨论】:

    标签: javascript jquery vue.js


    【解决方案1】:

    你没有声明路由器,所以试试这个:

       const router = new VueRouter({
            routes = [
                {path: '/', component: Home},
                {path: '/trafficSetting', name:'trafficS', component: trafficSetting},
                {path: '/seedResourcesManagement', component: seedResourcesManagement},
                {path: '/driverUserManagement', component: driverUserManagement},
                {path: '/whiteblackListManagement', component: whiteblackListManagement},
                {path: '/VPNserverManagement', component: VPNserverManagement}
            ]
        })
    

    【讨论】:

    • 确实我设置了路由器常量,但是在我推送路由器之后似乎什么都没有发生
    • 您能否编辑您的问题并显示更多信息以查看组件中的datamethods 声明以及main.js 的完整内容?它在导航功能上使用alert(to)?你有没有在 vue 组件中添加router,例如:const app = new Vue({ router}).$mount('#app')
    猜你喜欢
    • 2012-05-22
    • 2018-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-21
    • 2020-09-01
    • 2011-11-30
    • 1970-01-01
    相关资源
    最近更新 更多