Вычисляемое свойство, определенное в ... mapState () не имеет установщика - PullRequest
0 голосов
/ 18 июня 2019

В моем приложении Nuxt я инициализирую вычисленные свойства с данными, полученными из хранилища с помощью помощника mapState, однако мне также нужно изменить значение этих вычисленных свойств при определенных действиях пользователя.

Ну, я не могу этого сделать, так как при использовании этого кода я получаю ошибку "нет установщика":

computed: {
    ...mapState({
      monRaw: state => state.currentWeek

Я попытался определить сеттеры безрезультатно, и код тоже не имеет особого смысла:

computed: {
      ...mapState({
            get: function (state) {
              return state.currentWeek
            },
            set: function (state, data) {
              state.currentWeek = data
            }

Разве просто невозможно изменить значения вычисляемых свойств при определении с помощью mapState ()?

1 Ответ

0 голосов
/ 18 июня 2019

mapState - это удобная функция, которая обеспечивает сопоставление вычисляемого свойства с идентичным ключом в вашем хранилище vuex.Он обеспечивает доступ только для чтения к этим свойствам.Поскольку вы хотите использовать обновления, вам придется отказаться от mapstate и определить свой собственный вычисляемый метод получения / установки следующим образом:

computed: {
  currentWeek: {
    get() {
      return this.$store.state.currentWeek;
    },
    set(v) {
      this.$store.commit('updateCurrentWeek', v);
    } 
  }
...
}

, очевидно, updateCurrentWeek должно быть определено в разделе мутаций вашего хранилища vuex.

...