'vue-element-admin this.$router.push can't work

I want to use vue-element-admin to make a button for registering, so I copy the file folder which name is src/view/login,and rename it as register,then in the file folder which name is src/router/index add the code block as follow:

 {
    path: '/regist',
    component: () => import('@/views/regist/index'),
    hidden: true
  }

then in the file which name is src/views/login/index.vue, I add a button as follow:

<el-button :loading="loading" type="primary" style="width:100%;margin:0 0 30px;" @click="handleRegist">New?Register</el-button>

the handleRegist as follow:

handleRegist(){
      this.$router.push({path: "/regist"});
      console.log("can't get the regist page")
}

I expected when I click the registered button, then get a regist page. however, when I click that button and it still show the login page.

and after clicking the registered button, the router path is

http://localhost:9527/#/login?redirect=%2Fregist

which I expect it is http://localhost:9527/#/regist

the description of the problem is end. and I have try to do something to solve this problem:

file path:src/permission.js,I add the code block in router.beforeEach(async(to, from, next) => as follow :

if(to.path === '/register'){
    next()
  }

but I get the same problem as above.

what should I do to get the register page,please help me! Thank you!



Solution 1:[1]

what happens if you use this?

this.$router.push('/regist')

what happens if you use this method to push to a different view, like '/' ?

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 j-bill