Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将可选路径和参数推送到vue路由器_Javascript_Vue.js_Vue Router - Fatal编程技术网

Javascript 如何将可选路径和参数推送到vue路由器

Javascript 如何将可选路径和参数推送到vue路由器,javascript,vue.js,vue-router,Javascript,Vue.js,Vue Router,在一个电子商务项目中,我有一个带有可选url参数的分类页面和一个产品页面。我想在可选参数中添加一个字符串,以避免与产品发生冲突,如下所示: routes: [ { path: '/:category/(item-colour/:colour)?/(usage/:usage)?/', name: 'category', component: Category, props: true,

在一个电子商务项目中,我有一个带有可选url参数的分类页面和一个产品页面。我想在可选参数中添加一个字符串,以避免与产品发生冲突,如下所示:

routes: [
        {
            path: '/:category/(item-colour/:colour)?/(usage/:usage)?/',
            name: 'category',
            component: Category,
            props: true,
        },
        {
            path: '/:category/:product',
            name: 'product',
            component: Product,
            props: true,
        },
    ],
但是当我去推可选参数时,我不能同时推字符串

push() {
            let routeParams = {
                category: this.category,
            }

            Object.assign(routeParams, 
                this.selectedColours.length > 1 ? {colour: this.selectedColours} : null,
                this.selectedUsage.length > 1 ? {usage: this.selectedUsage} : null,
            )

            this.$router.push({ name: 'category', 
                params: routeParams
            })
        }

你的一个变量
的值是多少。例如,selectedColors
“红、蓝、绿”-一个或多个,用逗号分隔。我想你需要这样写:`path:
/:category/'(item color/':color')?/'(usage/':usage')?/
,谢谢。不幸的是,我的路由器现在将我发送到默认状态。是否将字符串和右括号用单引号括起来?