ฉันมีส่วนประกอบที่มีการตรวจสอบความถูกต้องของรูปแบบบางอย่าง เป็นแบบฟอร์มการชำระเงินหลายขั้นตอน โค้ดด้านล่างนี้ใช้สำหรับขั้นตอนแรก ฉันต้องการตรวจสอบว่าผู้ใช้ป้อนข้อความบางส่วนเก็บชื่อไว้ในสถานะส่วนกลางแล้วส่งไปยังขั้นตอนถัดไป ฉันใช้vee-validateและ 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>
ฉันมีร้านค้าสำหรับจัดการสถานะคำสั่งซื้อและบันทึกชื่อ ในที่สุดฉันต้องการส่งข้อมูลทั้งหมดจากแบบฟอร์มหลายขั้นตอนไปยังเซิร์ฟเวอร์
export default {
state: {
name: '',
},
mutations: {
UPDATE_ORDER_CONTACT(state, payload){
state.name = payload.name;
}
},
actions: {
addContactInfoForOrder({commit}, payload) {
commit('UPDATE_ORDER_CONTACT', payload);
}
}
}
เมื่อฉันเรียกใช้รหัสนี้ฉันได้รับข้อผิดพลาดว่า Computed property "name" was assigned to but it has no setter.
ฉันจะผูกค่าจากฟิลด์ name กับ global state ได้อย่างไร ฉันต้องการให้สิ่งนี้คงอยู่ต่อไปเพื่อที่แม้ว่าผู้ใช้จะย้อนกลับไปหนึ่งก้าว (หลังจากคลิก "ขั้นตอนถัดไป") พวกเขาจะเห็นชื่อที่ป้อนในขั้นตอนนี้
v-for
กับเครื่องคำนวณโดยไม่มีตัวตั้งค่าก็ส่งคำเตือนนี้เช่นกัน