Angel丶守护&雪之源 2024-05-09 10:03 采纳率: 22%
浏览 27

vue.js - beforeRouteEnter中next的回调函数不执行

路由如下:

{
        path: '/article/add',
        component: () =>import('@/view/pages/article/edit/'),
        name: 'article-add',
        meta: {
            title:  $t('添加文章')
        }
    },
    {
        path: '/article/edit/:id',
        component: () =>import('@/view/pages/article/edit/'),
        name: 'article-edit',
        meta: {
            title:  $t('编辑文章'),
            // 增加当前菜单
            menuActive: 'article',
        }
    },

js代码如下:


async function initFetch(router) {
    const id = router.params.id
    return $store.dispatch('Article/single', id).then(res=>{
        return res
    })
}

async beforeRouteEnter(to, from, next) {
        try {
            let data = {
                status: 'publish'
            }
            if ( ADMIN['query-lang'] ) {
                data.lang = ADMIN['query-lang']
            }
            if ( to.params.id ) {
                data = await initFetch(to)
            }
            next(vm => vm.setPosts(data))
        } catch (error) {
            next(vm => vm.$router.push('/article/paged/1'))
            throw error
        }
    },

setPosts(data) {
            const _data = ObjExt.copy(data)
            this.formData = _data
        },

当我首次进入编辑文章页面路由时beforeRouteEnter内的next(vm=>vm.setPosts(data))会执行,当我切换到添加文章页面路由时beforeRouteEnter内的next(vm=>vm.setPosts(data))也会执行,但当我从添加文章页面路由回到编辑文章页面路由时beforeRouteEnter内的next(vm=>vm.setPosts(data))就不执行了,这个该怎么解决

  • 写回答

5条回答 默认 最新

  • 专家-皆知 2024-05-09 10:03
    关注

    引自免费微信小程序:皆我百晓生

    请检查next参数是否被正确传递,并确保在导航守卫中调用了next()。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月9日

悬赏问题

  • ¥20 python爬虫遇到空文本取不出来
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥30 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入