У меня есть компонент, который представляет собой форму, в которую я ввожу имя, и он обновляет значение в поле в бэкэнде в зависимости от того, каким вводом является имя. Прямо сейчас у меня есть два входа (хост и разведчик), и они работают нормально, если я просто заполняю один вход. Моя проблема в том, что когда я заполняю оба ввода, имя на входе хоста всегда будет обновляться дважды, в то время как имя в поле разведчика будет работать нормально. Не уверен, если я был достаточно ясен.
Вот код для компонента до сих пор
<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>
Я не уверен, почему он обновляется дважды, только когда я заполняю оба поля ввода.