Vue.js nuxt watchQuery无法使用新查询处理更新路由
当我使用$router.push添加新查询以路由Nuxt watchQuery不工作和asyncData不获取api并重新装载子组件时。请注意“新查询”,默认情况下不存在任何查询。(创建新查询后,然后是现有查询,所有内容都正确,watchQuery工作正常。) example.com/some-param-->example.com/some-param?brand=x(不工作的watchQuery) example.com/some-param?brand=x-->example.com/some-param(正确的watchQuery)Vue.js nuxt watchQuery无法使用新查询处理更新路由,vue.js,nuxt.js,asyncdata,Vue.js,Nuxt.js,Asyncdata,当我使用$router.push添加新查询以路由Nuxt watchQuery不工作和asyncData不获取api并重新装载子组件时。请注意“新查询”,默认情况下不存在任何查询。(创建新查询后,然后是现有查询,所有内容都正确,watchQuery工作正常。) example.com/some-param-->example.com/some-param?brand=x(不工作的watchQuery) example.com/some-param?brand=x-->example.com/so
你检查过这个吗!!对我知道这一点,我的问题是为什么它对向route添加新查询没有反应。如果查询存在,一切都是正确的。(我不确定,但我认为这是nuxt的一个大错误)使用$router.push({path:$route.path,query:q})而不是$router.push({name:“search slug”,params:vm.$route.params,query:q})解决了这个问题;
change_brand: function () {
const vm = this;
/*** selected_brands = [] is an array defined in data ***/
let q = { ...vm.$route.query };
if (vm.selected_brands.length > 0) {
q.brands = vm.selected_brands.join("-");
} else {
delete q.brands;
}
vm.$router.push({
name: "search-slug",
params: vm.$route.params,
query: q,
});
},