В 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})
}
}