<cn> #### 表单数据存储于 Vuex Store 中 通过使用 onFieldsChange 与 mapPropsToFields,可以把表单的数据存储到 Vuex 中。 **注意:** `mapPropsToFields` 里面返回的表单域数据必须使用 `Form.createFormField` 包装。 </cn> <us> #### Store Form Data into Vuex Store We can store form data into Vuex Store. **Note:** You must wrap field data with `Form.createFormField` in `mapPropsToFields`. </us> <template> <div id="components-form-demo-vuex"> <a-form :form="form" @submit="handleSubmit"> <a-form-item label="Username"> <a-input v-decorator="[ 'username', { rules: [{ required: true, message: 'Username is required!' }], }, ]" /> </a-form-item> <a-button type="primary" html-type="submit"> Submit </a-button> </a-form> </div> </template> <script> export default { computed: { username() { return this.$store.state.username; }, }, watch: { username(val) { console.log('this.$store.state.username: ', val); this.form.setFieldsValue({ username: val }); }, }, created() { this.form = this.$form.createForm(this, { onFieldsChange: (_, changedFields) => { this.$emit('change', changedFields); }, mapPropsToFields: () => { return { username: this.$form.createFormField({ value: this.username, }), }; }, onValuesChange: (_, values) => { console.log(values); // Synchronize to vuex store in real time // this.$store.commit('update', values) }, }); }, methods: { handleSubmit(e) { e.preventDefault(); this.form.validateFields((err, values) => { if (!err) { console.log('Received values of form: ', values); this.$store.commit('update', values); } }); }, }, }; </script> <style> #components-form-demo-vuex .language-bash { max-width: 400px; border-radius: 6px; margin-top: 24px; } </style>