Tôi có một thành phần với một số xác thực biểu mẫu. Đây là một hình thức thanh toán nhiều bước. Đoạn mã dưới đây là dành cho bước đầu tiên. Tôi muốn xác thực rằng người dùng đã nhập một số văn bản, lưu trữ tên của họ ở trạng thái toàn cục và sau đó gửi sang bước tiếp theo. Tôi đang sử dụng vee-validate và 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>
Tôi có một cửa hàng để xử lý trạng thái đơn hàng và ghi lại tên. Cuối cùng, tôi muốn gửi tất cả thông tin từ biểu mẫu nhiều bước đến máy chủ.
export default {
state: {
name: '',
},
mutations: {
UPDATE_ORDER_CONTACT(state, payload){
state.name = payload.name;
}
},
actions: {
addContactInfoForOrder({commit}, payload) {
commit('UPDATE_ORDER_CONTACT', payload);
}
}
}
Khi tôi chạy mã này, tôi gặp lỗi Computed property "name" was assigned to but it has no setter.
Làm cách nào để liên kết giá trị từ trường tên với trạng thái chung? Tôi muốn điều này được duy trì để ngay cả khi người dùng quay lại một bước (sau khi nhấp vào "Bước tiếp theo"), họ sẽ thấy tên họ đã nhập ở bước này
v-for
trên máy tính mà không có bộ định vị cũng sẽ đưa ra cảnh báo này.