【问题标题】:How to dispay flash message after redirect vue-router重定向vue-router后如何显示flash消息
【发布时间】:2020-07-29 16:07:03
【问题描述】:

我正在使用 vuejs 和 express 创建简单的登录注销应用程序。用户注册成功后,我将他们重定向到由this.$router.push('/login') 登录的页面,我想显示一个像“注册成功”这样的闪存消息。现在登录!'

这是我的方法

在 Register.vue 中

this.$router.push("/login", () => {
  console.log('Register success')
  EventBus.$emit('registerSuccess')
 });

在 Login.vue 中

 <div class="alert alert-success" role="alert" v-if="flashMsg">{{flashMsg}}</div>
    data() {return {flashMsg: ''}}
    created() { 
        console.log('Created component')
        EventBus.$on("registerSuccess", () => {
          console.log('Set flash msg')
          this.flashMsg = "Now log in!"
        });
      },

它不起作用。 EventBus 监听发射但不为 flashMsg 设置任何值。

控制台

Register success
Set flash msg
Created component

谁能告诉我怎么做?谢谢

【问题讨论】:

  • 您确定要初始化 EventBus 吗?我看不到那部分代码。即const EventBus = new Vue()
  • 是的,我更新了这篇文章。
  • 你试过我的答案了吗?

标签: vue.js vue-router


【解决方案1】:

根据this,您正在寻找的内容是不可能的,因为您在发出事件之前正在更改路线,因此无法捕获。

我建议你尝试使用 localStorage/SessionStorage、Vuex 或查询字符串。

【讨论】:

  • 它没有用。我不认为问题是参数的数量
  • 我使用查询 /login?msg=registerSuccess 解决了这个问题。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-28
  • 1970-01-01
相关资源
最近更新 更多