From 98792e2c32e81bd886222a4d67c78fcbc6714e83 Mon Sep 17 00:00:00 2001 From: Benjy Cui Date: Fri, 8 Dec 2017 10:10:21 +0800 Subject: [PATCH] fix: log different error message, close: #124 --- package.json | 2 +- src/createFieldsStore.js | 12 ++++++++++-- src/utils.js | 10 ++++++---- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 07cc5eef..5b07b88c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rc-form", - "version": "2.1.4", + "version": "2.1.5", "description": "React High Order Form Component", "keywords": [ "react", diff --git a/src/createFieldsStore.js b/src/createFieldsStore.js index 8c69ff30..8533061a 100644 --- a/src/createFieldsStore.js +++ b/src/createFieldsStore.js @@ -17,12 +17,20 @@ class FieldsStore { } flattenFields(fields) { - return flattenFields(fields, (_, node) => isFormField(node)); + return flattenFields( + fields, + (_, node) => isFormField(node), + 'You must wrap field data with `createFormField`.' + ); } flattenRegisteredFields(fields) { const validFieldsName = this.getValidFieldsName(); - return flattenFields(fields, path => validFieldsName.indexOf(path) >= 0); + return flattenFields( + fields, + path => validFieldsName.indexOf(path) >= 0, + 'You cannot set field before registering it.' + ); } setFieldsInitialValue = (initialValues) => { diff --git a/src/utils.js b/src/utils.js index 1da46075..dcd4adab 100644 --- a/src/utils.js +++ b/src/utils.js @@ -19,7 +19,7 @@ export function flattenArray(arr) { return Array.prototype.concat.apply([], arr); } -export function treeTraverse(path = '', tree, isLeafNode, callback) { +export function treeTraverse(path = '', tree, isLeafNode, errorMessage, callback) { if (isLeafNode(path, tree)) { callback(path, tree); } else if (tree === undefined) { @@ -29,11 +29,12 @@ export function treeTraverse(path = '', tree, isLeafNode, callback) { `${path}[${index}]`, subTree, isLeafNode, + errorMessage, callback )); } else { // It's object and not a leaf node if (typeof tree !== 'object') { - console.error('You must wrap field data with `createFormField`.'); + console.error(errorMessage); return; } Object.keys(tree).forEach(subTreeKey => { @@ -42,15 +43,16 @@ export function treeTraverse(path = '', tree, isLeafNode, callback) { `${path}${path ? '.' : ''}${subTreeKey}`, subTree, isLeafNode, + errorMessage, callback ); }); } } -export function flattenFields(maybeNestedFields, isLeafNode) { +export function flattenFields(maybeNestedFields, isLeafNode, errorMessage) { const fields = {}; - treeTraverse(undefined, maybeNestedFields, isLeafNode, (path, node) => { + treeTraverse(undefined, maybeNestedFields, isLeafNode, errorMessage, (path, node) => { fields[path] = node; }); return fields;