gpt4 book ai didi

vue.js - Vue 和 Vuex : Updating state based on changes to the view

转载 作者:搜寻专家 更新时间:2023-10-30 22:48:09 24 4
gpt4 key购买 nike

我正在尝试构建

呈现表单的应用程序,其中默认输入值等于商店中的数据。

当点击保存按钮时,状态将根据用户添加到 View 的新数据进行更新。

目前输入绑定(bind)到存储数据,所以我没有引用输入的“实时”值。当用户点击保存时,我如何获取“实时”值?

组件模板

<input type="text" class="form-control" :value="item.name">
<input type="text" class="form-control" :value="item.price">
<button class="btn btn-primary" v-on:click="updateItem(item)">Save</button>

组件

data: function() {
return {}
},
methods: {
updateItem(item) {
this.$store.commit('updateItem', item);
},
},
computed: {
items() {
return this.$store.getters.getItem;
}
}

可能的解决方案

我想我也许可以创建商店的“克隆”,并将输入绑定(bind)到克隆的项目数据。然后这个对象将随着 View 的变化而更新,这样我就可以获取那些“实时”值,并将数据从 View 提交到存储。这是一个好的解决方案吗?

最佳答案

如果您想在用户无需单击按钮的情况下进行更新,那么我建议 one of the methods explained in the docs .

但是既然你想在他们点击按钮的时候这样做,试试这样的事情:

<template>
<form>
<input type="text" class="form-control" v-model="item.name">
<input type="text" class="form-control" v-model="item.price">

<button class="btn btn-primary" @click.prevent="updateItem">Save</button>
</form>
</template>

<script>
export default {
data() {
return {
item: {
name: null,
price: null,
}
}
},

mounted() {
// Set the default value of this.item based on what's in the store
this.item = this.$store.getters.getItem
},

methods: {
updateItem() {
this.$store.commit('updateItem', this.item);
}
}
}
</script>

关于vue.js - Vue 和 Vuex : Updating state based on changes to the view,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46757552/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com