发布
社区首页 >问答首页 >如何在Vue表单中获取输入数据?

如何在Vue表单中获取输入数据?
EN

Stack Overflow用户
提问于 2021-01-02 01:32:21
回答 1查看 46关注 0票数 0

我有以下组件:

代码语言:javascript
代码运行次数:0
复制
<template>
  <div>    
    <form @submit.prevent="formSubmit()">
    <input type="text" class="form-control" v-model="amount">
    <button class="btn btn-primary" style="width: 100%">Buy</button>
    </form>
  </div>

</template>
     
<script>

export default {

  props:{


  },


  computed: {
    amount() {
      return this.$store.getters.amount
    },
  },
  methods: {
      formSubmit() {
          let currentObj = this;
          
          console.log(this.amount)

          axios.post('MY-BACKEND', {        
              amount: this.amount,

          },

          .then(function (response) {
            currentObj.output = response.data;
          }.bind(this))

          .catch(function (error) {
              currentObj.output = error;
          });
      },
  
  }
}

</script>

这是一个带有输入文本字段的标准表单。我的代码的问题是,当我输入字段时,amount的值不是我在字段中输入的值,但它始终是this.$store.getters.coinBalance设置的默认值。因此,假设当我加载组件时,amount的值为60,并且我在字段120中输入,则amount的值保持为60。我该如何解决这个问题呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-02 01:40:20

您正在从存储中获取amount,但是当您的输入发生更改时,您并没有更新它。要更新存储中的amount值,可以创建一个setter for your computed property

代码语言:javascript
代码运行次数:0
复制
computed: {
  amount: {
    get() {
      return this.$store.getters.amount
    },
    set(val) {
      this.$store.commit('updateAmount', val)
    }
  },
},

并在您的商店中创建一个突变updateAmount来更新amount

代码语言:javascript
代码运行次数:0
复制
updateAmount(state, amount) {
  state.amount = amount
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65532029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档