javascript - 从方法调用时,Vue $route.push 不起作用
问题描述
我正在使用vue-bootstrap-typeahead
自动完成库为我的应用程序构建一个搜索栏,如果您不熟悉它,当您单击建议的结果时,它会触发@hit
事件,将结果数据传递给方法。
<vue-bootstrap-typeahead
...
@hit="goToResult"
...
/>
然后我有goToResult
方法
methods: {
goToResult(result) {
this.$router.push({name: 'market', params: {marketId: result.id}});
},
...
}
当我从非市场路线进行搜索时,它工作正常,将用户重定向到所需的/market/:marketId
路线,但是当它从“市场”路线完成时,它只会更改 URL,但不会重定向到新市场,它甚至会触发如果我两次单击相同的结果,但仍未重定向,则会出现“重复的路线”错误。
有什么建议吗?谢谢
解决方案
查看该router.push
部分底部的注释:https ://router.vuejs.org/guide/essentials/navigation.html
注意:如果目的地与当前路由相同并且只有参数发生变化(例如从一个配置文件转到另一个 /users/1 -> /users/2),您将必须使用 beforeRouteUpdate 来响应更改(例如获取用户信息)。
...这里是如何使用beforeRouteUpdate
:
https ://router.vuejs.org/guide/essentials/dynamic-matching.html#reacting-to-params-changes
希望这可以帮助!
推荐阅读
- yaml - 使用 CouchDB 的 Hyperledger Fabric 客户端凭证存储
- kubernetes - KubeConfig 文件是如何使用的?
- javascript - jQuery单击更改颜色正在工作,但出现问题更改字体系列
- ios - 使用未解析的标识符“连接”;您是指Auth0中的“连接”吗?
- c# - 单击检查按钮时如何删除/删除按钮文本?
- typescript - 打字稿:定义没有字段的类型
- c++ - 如何编写用于从 C 访问 C++ 类成员的 Wrapper(具有继承和构造函数)
- r - 有没有更好的方法将大数据(约 2000 万行)从 Hive 数据库移动到 R 中的 Netezza 数据库?
- reactjs - 限制仅输入数字?
- css - 改变 mat-slide-toggle 的方向