VUE路由重定向未从其他页面关闭模式

时间:2019-12-12 14:42:13

标签: vuejs2 vuex vue-router

我正在使用另一位开发者设置的vue2 routes,但是我试图将当前设置的“重定向”更改为进入“首页”页面。

此问题是,有一个页面,当您第一次进入该页面(第一次)时,会显示bootstrap modal。我遇到的问题是,如果我是第一次进入此页面,然后更改URL,则“重定向”正在按预期方式运行,但该模式仍然仍在显示,我不知道如何关闭它。

routes.js

import {store} from './store/store';
import Cart from './components/Cart';
import Stock from './components/Stock';
import Home from './components/Home.vue';
import Review from './components/Review';
import Order from './components/Order.vue';
import OrderReport from './components/OrderReport';
import AccountDetails from './components/AccountDetails';
import ExistingOrders from './components/ExistingOrders';

export const routes = [
    {path: '', component: Home},
    {path: '/order', component: Order},
    {
        path: '/review', component: Review, children: [
            {path: '', component: ExistingOrders},
            {
                path: ':id', component: OrderReport, beforeEnter: (to, from, next) => {

                    let orderCount = store.getters.orderPaginator.items.filter(item => item.id === +to.params.id).length;

                    next(orderCount > 0);
                }
            }
        ]
    },
    {path: '/account', component: AccountDetails},
    {path: '/stock', component: Stock},
    {path: '/cart', component: Cart},
    {path: '*', redirect: '/order'}
];

如果我将“ redirect:'/ order'”更改为“ redirect:'/'”,则按预期进入我的主页,但显示模式。有没有办法关闭重定向?

应该显示模式的页面 enter image description here

**将URL更改为“订单”,然后单击“输入” enter image description here

定向到正确的页面(主页),但仍然显示模式。有没有一种方法可以使用:key来更改routes,还是我必须使用类似this.$forceUpdate()的方法,尽管我已经读到它可能在vue2中不起作用,并且真的很不错。

我最好的方法是什么?只需提及我是vue2

的新手

1 个答案:

答案 0 :(得分:0)

可能不是解决问题的最干净或最好的方法,但我能想到的唯一方法是在“ home.vue”文件中使用以下内容

mounted() {
    this.closeAccountSelectModal();
},

methods: {
    closeAccountSelectModal() {
        $('.modal ').modal('hide');
    }
}

使用了class,因此包含modals的所有其他页面也将被覆盖。