这是A页面的路由:<router-link :to="{path: 'Problemdetails', query: {id: v.title}}">{{v.title}}</router-link>
跳转B页面之后我是这样获取的:
mounted: function () {
console.log(this.$route.query.id)
}
A页面和B页面是同一级的组件
为什么点击A页面后进入B页面获取不到query?只有刷新一下console.log才能显示?
这是A页面的路由:<router-link :to="{path: 'Problemdetails', query: {id: v.title}}">{{v.title}}</router-link>
跳转B页面之后我是这样获取的:
mounted: function () {
console.log(this.$route.query.id)
}
A页面和B页面是同一级的组件
为什么点击A页面后进入B页面获取不到query?只有刷新一下console.log才能显示?
和我一样的问题, 复用相同的页面也就是相同的route, 然后传入的参数不同, vue并不会重新发起请求, 我尝试加了 watch 监控参数变化, 重新调用获取数据方法, 但是实际的结果是 传入query执行了一次获取数据, 又执行了一次默认参数获取数据, 最终结果就是用默认页面的数据把我想要的数据覆盖掉了.
watch: {
'$route' (to, from) {
console.log(this.$route.query)
this.getData()
}
},
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
4 回答4.3k 阅读✓ 已解决
4 回答1.9k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
把获取数据的代码写到一个方法里,比如: