Как сделать подписку на недвижимость в государстве Vue? - PullRequest
0 голосов
/ 29 сентября 2018

У меня vue приложение.

Я использую пакеты vuex и vuex-class для подключения к магазину.

в моем компоненте (vue-property-decorator) Я хочуподписаться на какое-то свойство в состоянии, и когда оно изменится, я хочу знать.

например:

мое состояние, например:

const state = {
  error: null,
};

и получатели:

 const getters = {
     error(state: any) {
        return state.error;
      },
    };

мой компонент:

    import { Component } from 'vue-property-decorator';
    import { namespace } from 'vuex-class';
    const SomeModule = namespace('somemodule');

    @Component({})
    export default class MyPage extends SomeBaseComponent {

    @SomeModule.Getter('error')
    error: any;
     // HOW TO know when error has change?
    }


    onErrorChanged() {

      //?????
    }

Я хочу, чтобы onErrorChanged срабатывал каждый раз при изменении свойства ошибки состояния.

Как это сделать?

1 Ответ

0 голосов
/ 09 октября 2018

Я поддерживаю vue-property-docorator.Спасибо за использование библиотеки.

Если вы хотите наблюдать за изменениями свойства error, вы можете сделать это с помощью $watch.

Поскольку вы используете vue-property-decorator, доступен @Watch декоратор.

@Component({})
export default class MyPage extends SomeBaseComponent {
  @SomeModule.Getter('error')
  error: any;

  @Watch('error')
  onErrorChanged(newErrorVal, oldErrorVal) { }
}
...