【问题标题】:Vue3 route.query emptyVue3 route.query 为空
【发布时间】:2021-11-28 08:59:44
【问题描述】:

试图将路由查询传递给axios 请求,但它是空的.. route.query在挂载时返回空。 route.queryreturns {"filter[city]": "Vilnius" } 在 axios 中 then nextTick 不能解决问题。有什么建议吗?

import { ref, onMounted, nextTick } from 'vue';
import axios from 'axios';
import { initMap } from '../../functions/useMap';

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" }
            });
        }
    }
}

【问题讨论】:

    标签: vue.js vue-router vuejs3


    【解决方案1】:

    像这样更新你的代码:

    ...
    import { computed } from 'vue'
    ...
    

    在 setup() 内部

    const route = useRoute();
    const query = computed(() => route.query)
    

    这里缺少的部分是计算属性。

    【讨论】:

    • 不行
    • 它有效,查询是参考。使用 query.value 获取参数对象。
    猜你喜欢
    • 2023-01-24
    • 2021-05-04
    • 2021-11-15
    • 2021-10-29
    • 2022-11-23
    • 2021-09-22
    • 2021-09-09
    • 1970-01-01
    • 2021-02-18
    相关资源
    最近更新 更多