From a9aa7890f236fd36074ddc12e7bba5c67eb3696b Mon Sep 17 00:00:00 2001 From: anson0370 Date: Tue, 8 Nov 2016 15:06:56 +0800 Subject: [PATCH 1/2] pass all fields value into onFieldsChange method --- README.md | 2 +- src/createBaseForm.js | 2 +- tests/map.spec.js | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b3077d9b..57372f46 100644 --- a/README.md +++ b/README.md @@ -119,7 +119,7 @@ preset messages of [async-validator](https://github.com/yiminghe/async-validator Get new props transfered to WrappedComponent. Defaults to props=>props. -### formOption.onFieldsChange(props, fields) +### formOption.onFieldsChange(props, fields, allFieldsValue) Called when field changed, you can dispatch fields to redux store. diff --git a/src/createBaseForm.js b/src/createBaseForm.js index 911c594b..f7cf6591 100644 --- a/src/createBaseForm.js +++ b/src/createBaseForm.js @@ -384,7 +384,7 @@ function createBaseForm(option = {}, mixins = []) { changedFieldsName.forEach((f) => { changedFields[f] = this.getField(f); }); - onFieldsChange(this.props, changedFields); + onFieldsChange(this.props, changedFields, this.getFieldsValue()); } this.forceUpdate(); }, diff --git a/tests/map.spec.js b/tests/map.spec.js index 7da9b221..3522d813 100644 --- a/tests/map.spec.js +++ b/tests/map.spec.js @@ -37,11 +37,13 @@ describe('map usage', () => { it('onFieldsChange works', () => { const Test = createForm({ withRef: true, - onFieldsChange(props, fields) { + onFieldsChange(props, fields, allFields) { expect(Object.keys(fields).length).to.be(1); const field = fields.normal; expect(field.name).to.be('normal'); expect(field.value).to.be('3'); + expect(allFields['normal']).to.be('3'); + expect(allFields['normal2']).to.be(undefined); }, mapPropsToFields(props) { return { From c8f7a3f1afb8a5bcca6a3463c43f4ee7d1a3a697 Mon Sep 17 00:00:00 2001 From: anson0370 Date: Tue, 8 Nov 2016 15:35:03 +0800 Subject: [PATCH 2/2] fix lint errors --- .gitignore | 3 ++- tests/map.spec.js | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index f0df9c59..3b5241df 100644 --- a/.gitignore +++ b/.gitignore @@ -23,4 +23,5 @@ node_modules build dist lib -coverage \ No newline at end of file +coverage +.vscode \ No newline at end of file diff --git a/tests/map.spec.js b/tests/map.spec.js index 3522d813..de17b4b9 100644 --- a/tests/map.spec.js +++ b/tests/map.spec.js @@ -42,8 +42,8 @@ describe('map usage', () => { const field = fields.normal; expect(field.name).to.be('normal'); expect(field.value).to.be('3'); - expect(allFields['normal']).to.be('3'); - expect(allFields['normal2']).to.be(undefined); + expect(allFields.normal).to.be('3'); + expect(allFields.normal2).to.be(undefined); }, mapPropsToFields(props) { return {