Как исправить ошибку «Вычисленное свойство ... назначено, но у него нет установщика» в компоненте Buefy b-table с использованием хранилища Vuex - PullRequest
0 голосов
/ 16 июня 2020

Ситуация :

У меня есть приложение VueJS2 с массивом элементов в моем магазине Vuex:

export default new Vuex.Store({
    state: {
       checkedItems: []
    }
   ...

Идея состоит в том, чтобы проверить (выбран ) элементы в компоненте buefy b-table, глобально доступные через этот массив. B-таблица инициируется в моем компоненте следующим образом:

 <b-table
   ...
   :checked-rows.sync="checkedItems"
   ...

, а состояние хранилища отображается внутри компонента следующим образом:

...
  computed: {
     ...mapState(['checkedItems'])
   },
  ...

Проблема :

Строки выбираются визуально (т. Е. Флажок переключается между отмеченным / очищенным), но массив checkedItems хранилища не обновляется. Я знаю это, потому что для отладки я показываю счетчик для массива, и он остается нулевым независимо от того, сколько элементов я (де-) выбираю. В консоли браузера отображается «[Vue предупреждение]: вычисленное свойство« checkedFrqs »было назначено, но у него нет установщика». когда я выбираю строку.

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

this.checkedItems.push(row)

Вопрос :

Как заставить

:checked-rows.sync="checkedItems"

работать без проблем с массивом Vuex? (PS когда я использую локальный массив вместо массива хранилища Vuex, все также работает)

1 Ответ

0 голосов
/ 16 июня 2020

Глупый, это решило это:

:checked-rows.sync="$store.state.checkedItems"

(без использования геттеров-> mapState)

...