Метод обновления данных дважды при отправке формы - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть компонент, который представляет собой форму, в которую я ввожу имя, и он обновляет значение в поле в бэкэнде в зависимости от того, каким вводом является имя. Прямо сейчас у меня есть два входа (хост и разведчик), и они работают нормально, если я просто заполняю один вход. Моя проблема в том, что когда я заполняю оба ввода, имя на входе хоста всегда будет обновляться дважды, в то время как имя в поле разведчика будет работать нормально. Не уверен, если я был достаточно ясен.

Вот код для компонента до сих пор

<template>
  <div class="add-wave">
    <h3>Add Wave</h3>
    <div class="row">
      <form @click.prevent="addwave()" class="col s12">
        <div class="row">
          <div class="input-field col s12">
            <input type="text" v-model="host" />
            <label class="active">Host</label>
          </div>
        </div>
        <div class="row">
          <div class="input-field col s12">
            <input type="text" v-model="scout" />
            <label class="active">Scout</label>
          </div>
        </div>
        <button type="submit" class="btn">Submit</button>
        <router-link to="/member" class="btn grey">Cancel</router-link>
      </form>
    </div>
  </div>
</template>

<script>
import { db, fv } from "../data/firebaseInit";
export default {
  data() {
    return {
      host: null,
      scout: null
    };
  },
  methods: {
    addwave() {
      this.addhost();
      db.collection("members")
        .where("name", "==", this.scout)
        .get()
        .then(querySnapshot => {
          querySnapshot.forEach(doc => {
            doc.ref.update({
              scout: fv.increment(1),
              total: fv.increment(1)
            });
          });
        });
    },
    addhost() {
      db.collection("members")
        .where("name", "==", this.host)
        .get()
        .then(querySnapshot => {
          querySnapshot.forEach(doc => {
            doc.ref.update({
              host: fv.increment(1),
              total: fv.increment(1)
            });
          });
        });
    }
  }
};
</script>

Я не уверен, почему он обновляется дважды, только когда я заполняю оба поля ввода.

...