VueJS: просмотр Vuex getter в нескольких компонентах не работает - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть состояние Vuex processState, которое имеет ниже геттер

export const getters = {
  getProcessState: state => {
    return state.processState;
}

Я наблюдаю этот геттер в двух разных компонентах, как показано ниже

<script>
import { mapGetters } from "vuex";

 export default {
   computed: {
     ...mapGetters("process/processStore", ["getProcessState"])
   },
   watch: {
     getProcessState(newVal, oldVal) {
       //different logic for each component.
     }
   }
};
</script>

Теперь, когда processState изменяется , getProcessState(newVal, oldVal) вызывается только в одном компоненте. Если я закомментирую часы в компоненте, в котором он вызывается, другой начинает работать. Так что в одно время работает только один. Есть ли что-то в Vuex или watch, что мне не хватает, что вызывает эту проблему?

Спасибо

Обновление Я пытался посмотреть getter в третьем составная часть. но оно также не вызывается.

Ответы [ 2 ]

0 голосов
/ 08 апреля 2020

Если ваш метод получения не возвращает скаляр (т. Е. Если он возвращает объект {} или массив []), вы должны смотреть его так:

watch: {
  getProcessState: {
    deep: true,
    handler: function(newVal, oldVa) {
     // Your logic
    }
  }
}
0 голосов
/ 03 апреля 2020

Попробуйте напрямую использовать getter без сопоставления

    watch: {
        '$store.getters.getProcessState': function (value) {
            // your logic
        }
    }
...