Vue3 路由.查询为空

kei*_*ah7 5 vue.js vue-router vuejs3

尝试将路由查询传递给axios请求,但它是空的.. route.query在装载中返回空。axios 中的route.query返回 并不能解决问题。有小费吗?{"filter[city]": "Vilnius" }then nextTick

import { ref, onMounted, nextTick } from 'vue';
import axios from 'axios';

import { useRouter, useRoute } from 'vue-router';

export default {
    setup() {
        const router = useRouter();
        const route = useRoute();

        onMounted(() => {
            console.log(route.query);  // log is {}
            fetchApartments();
        });
    
        function fetchApartments() {
            console.log(route.query); // log is {}
        
            axios.get('/api/apartments').then(response => {
                console.log(route.query); // log is { "filter[city]": "Vilnius" }
            });
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 18

路线导航是异步的。您需要等待router.isReady查询可用

import {useRouter, useRoute} from 'vue-router';

export default {
  setup() {
    const router = useRouter();
    const route = useRoute();
    
    onMounted(async () => {
      await router.isReady();
      console.log(route.query);
    });
  }
}
Run Code Online (Sandbox Code Playgroud)