Saya memiliki komponen dengan beberapa validasi formulir. Ini adalah formulir pembayaran multi langkah. Kode di bawah ini untuk langkah pertama. Saya ingin memvalidasi bahwa pengguna memasukkan beberapa teks, menyimpan nama mereka di status global dan kemudian mengirimkannya ke langkah berikutnya. Saya menggunakan vee-validate dan vuex
<template>
<div>
<div class='field'>
<label class='label' for='name'>Name</label>
<div class="control has-icons-right">
<input name="name" v-model="name" v-validate="'required|alpha'" :class="{'input': true, 'is-danger': errors.has('name') }" type="text" placeholder="First and Last">
<span class="icon is-small is-right" v-if="errors.has('name')">
<i class="fa fa-warning"></i>
</span>
</div>
<p class="help is-danger" v-show="errors.has('name')">{{ errors.first('name') }}</p>
</div>
<div class="field pull-right">
<button class="button is-medium is-primary" type="submit" @click.prevent="nextStep">Next Step</button>
</div>
</div>
</template>
<script>
export default {
methods: {
nextStep(){
var self = this;
// from baianat/vee-validate
this.$validator.validateAll().then((result) => {
if (result) {
this.$store.dispatch('addContactInfoForOrder', self);
this.$store.dispatch('goToNextStep');
return;
}
});
}
},
computed: {
name: function(){
return this.$store.state.name;
}
}
}
</script>
Saya memiliki toko untuk menangani status pesanan dan mencatat nama. Akhirnya saya ingin mengirim semua info dari formulir multi langkah ke server.
export default {
state: {
name: '',
},
mutations: {
UPDATE_ORDER_CONTACT(state, payload){
state.name = payload.name;
}
},
actions: {
addContactInfoForOrder({commit}, payload) {
commit('UPDATE_ORDER_CONTACT', payload);
}
}
}
Ketika saya menjalankan kode ini saya mendapatkan kesalahan itu Computed property "name" was assigned to but it has no setter.
Bagaimana cara mengikat nilai dari bidang nama ke status global? Saya ingin ini gigih sehingga meskipun pengguna mundur satu langkah (setelah mengklik "Langkah Berikutnya") mereka akan melihat nama yang mereka masukkan pada langkah ini
v-for
pada komputer tanpa setter juga memberikan peringatan ini.