Vuex: привязка формы для элемента массива объектов? - PullRequest
0 голосов
/ 11 февраля 2019

В Vuex есть приятные документы.В котором мы видим, как сделать 2-стороннее связывание :

// component.vue
...,
computed: {
  message: {
    get () {
      return this.$store.state.obj.message
    },
    set (value) {
      this.$store.commit('updateMessage', value)
    }
  }
},
...

, это прекрасно работает, но что, если вы хотите связать свойство объекта массива?

например

// state.js
...
listOfThings: [
    {
        text: 'lets bind this',
        value: 0
    },
    {
        text: 'and this is in the $store',
        value: 20
    }
]

и, скажем, мы используем mapState, тогда мы можем захотеть иметь компонент для списка вещей, который пользователи могут обновить в магазине:

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

 text: {
    get () {
      return this.$store.state.listOfThings[this.i].text
    },
    set (value) {
      this.$store.commit('updateText', {i, text: value})
    }
  }
...