言午422
言午422
  • 发布:2021-07-07 01:13
  • 更新:2021-07-13 11:04
  • 阅读:1317

uni-simple-router路由需要重装才能正常导航的问题

分类:uni-app

我在进行vue项目转uniapp项目重构路由时,使用uni-simple-router^2.0.6来替代vue-router,uni-read-pages^1.0.5附带一起安装。
按照教程下架插件,复制示例项目里的router.js,util.js。在自己项目的main.js导入{router,RouterMount}并按模板应用,导入、应用。
这时我完成了三个页面登录页、重置密码、注册,在我使用路由插件前我有使用uview的跳转组件运行跳转,路由插件导入后替换为this.$Router.push,做完的三个页面在push的时候正常跳转。

问题出在我在新加入了页面,然后想要this.$Router.push({name:"index"}),我发现跳转并没有起作用,还停留在原来的页面,多次点击尝试依然没有成功跳转到index,Hbuilder中也没有报错,在这push这一行下,写了log,也能正常输出,最早的三个页面还是能正确跳转。
仅将index替换为register,这行代码又能成功运行跳转到register页。我怀疑是我在pages的写的不对,在重写后依然无法成功执行this.$Router.push({name:"index"}),检查过确定没有写错,我再新增一个home页面,复制可以成功运行register页pages代码,仅替换路径和name。
再试依然无法成功执行push导航,使用uni-simple-router的routerErrorEach输出导航出错原因,输出error.type=2 ,msg显示正在跳转中,不能再次进行跳转,我在routerErrorEach使用router.$lockStatus=false;强制解锁,依然没有跳转。
只不过从每进行一次push报一次跳转中不能再跳转,变成两次push报一次跳转中不能再跳转,中间我进行了很多次尝试都无法成功跳转到index或home,最后我也不知道怎么想的,删除和重装现有的uni-simple-router和uni-read-pages,就能正常导航了。。。。

是的我确定我在重装插件前this.$Router.push({name:"index"})还是没有反应的,在
npm uninstall uni-simple-router
npm install -s uni-simple-router
后,就可以正常进行导航,之后我有重新建立新的页面和路径也不能成功push,再重装又都可以正常导航了。。。

总结下,现在就是我新建页面后不能正常导航,重装uni-simple-router就又可以了。
我技术能力有限,不知道这是什么问题导致的,如果有知道的朋友麻烦指点一下我。

0 关注 分享

要回复文章请先登录注册

hhyang

hhyang

`uni-read-pages` 是否采用了读取出来的变量是采取了热加载,否则每次新添加的页面都需要重新编译。你可以按此写法
```js
// vue.config.js
const TransformPages = require('uni-read-pages')
const {webpack} = new TransformPages()
module.exports = {
configureWebpack: {
plugins: [
new webpack.DefinePlugin({
ROUTES: webpack.DefinePlugin.runtimeValue(() => {
const tfPages = new TransformPages({
includes: ['path', 'name', 'meta','aliasPath']
});
return JSON.stringify(tfPages.routes)
}, true )
})
]
}
}
```
2021-07-13 11:04