检查布尔值无法正常工作

时间:2018-04-24 01:06:40

标签: javascript vue.js

请参阅编辑#1 - 我正在使用Vue.js并正在更改同事代码。目标是检查我们的Vuex商店中是否有用户,如果没有提醒用户登录/注册。如果没有登录,它将返回false,但是“TOGGLE_LIKED”'仍在被召唤。

目前看起来像这样:

check(){
  if (typeof this.$store.state.user === 'undefined' || !this.$store.state.user) {
    alert('please signin in the upper-right'); /* eslint-disable-line no-alert */
    return false;
  }else{
    return true;
  }
},
toggleLiked() {
  if (this.check()) {
    this.isRunningToggle = true;
    this.$store.dispatch('TOGGLE_LIKED', this.item).then(() => {
      this.isRunningToggle = false;
    });

代码有什么问题,这样如果你没有登录,那就是“TOGGLE_LIKED”'路径是不是被称为?

编辑#1

所以,如果我切换到这样的事件总线调用:

  if (EventBus.$emit('checkLoggedIn')) {
    this.isRunningToggle = true;
    this.$store.dispatch('TOGGLE_LIKED', this.item).then(() => {
      this.isRunningToggle = false;
    });
  }

在根组件中使用checkLoggedIn:

  EventBus.$on('checkLoggedIn', () => {
    console.log(this.$store.state.user); 
    if (typeof this.$store.state.user === 'undefined' || !this.$store.state.user) {
      alert('please signin in the upper-right'); 
      return false;
    }else{
      alert('this is true');
      return true;
    }
  });

第一个警报被呼叫但是第二个ISN' T。因此,如果我们返回错误,为什么检查会有效地返回"真正?

0 个答案:

没有答案