Вычисляемое свойство родительского компонента не реагирует на изменение состояния, вызванное дочерним компонентом

У моего родительского компонента есть вычисляемое свойство с именем showMainBanner, которое содержит состояние хранилища:

computed: {
  showMainBanner () {
    return this.$store.state.config.showMainBanner
  }
}

Мой дочерний компонент при щелчке пользователем меняет это состояние хранилища следующим образом:

this.$store.commit('config/SET_BANNER_STATUS', 'false')

... Что указывает на эту часть магазина:

export const state = () => ({
  showMainBanner: true,
})

export const mutations = {
  SET_BANNER_STATUS (state, config) {
    state.showMainBanner = config
  }
}

Изменение состояния хранилища прошло успешно, но вычисленное свойство showMainBanner родительского компонента не реагирует на это изменение хранилища.

Почему нет?


person drake035    schedule 27.03.2019    source источник
comment
откуда ты знаешь, что это не меняется?   -  person Radu Diță    schedule 27.03.2019
comment
Хороший вопрос. Поскольку в моем родительском компоненте у меня есть <div :class="[{ 'banner-visible' : showMainBanner }, 'view view-index']">, а класс banner-visible всегда присутствует, это означает, что showMainBanner никогда не становится false   -  person drake035    schedule 27.03.2019
comment
Похоже на это. $ Store.commit ('config / SET_BANNER_STATUS', 'false') имеет дело с 'false', поскольку строка анализируется javascript как истинная   -  person Matheus Valenza    schedule 27.03.2019
comment
Да, спасибо! Я приму твой ответ, если ты хочешь его   -  person drake035    schedule 27.03.2019


Ответы (1)


Просто измените:

this.$store.commit('config/SET_BANNER_STATUS', 'false')

To:

this.$store.commit('config/SET_BANNER_STATUS', false)
person Matheus Valenza    schedule 01.04.2019