在我的组件中,我从州获得了一些道具:
computed: mapGetters({
id: 'downloadId',
pageLimit: 'pageLimit',
pageMaxSize: 'pageMaxSize',
cleaningInterval: 'cleaningInterval'
})
我绑定了属性:
<input type="number" v-model.number="pageLimit" id="pageMaxSize" />
保存方法:
methods: {
onSave () {
alert('Your data: ' + JSON.stringify(this.pageLimit))
}
}
当在输入字段中输入值并单击保存按钮时,this.pageLimit
仍为初始值
如何获取更新后的值?
答案 0 :(得分:0)
您的代码存在两个问题:
v-model
只能与data
一起使用,而不能与computed
一起使用。除非值所依赖的值或其中一个值发生更改,否则无法更改Vue.js中的computed
属性值。
您无法直接更新状态。这是vuex规则之一。要更新它,你必须使用vuex变异。
所以解决方案是:
创建一个名为data
的{{1}}属性,并使用tempPageLimit
将其绑定到输入。
在v-model
中,创建一个更新store
的变体,其值为pageLimit
,然后使用tempPageLimit
将其映射到您的组件。
在mapMutations
方法中执行此突变。