MCPcopy
hub / github.com/react-component/form / getFieldDecorator

Function getFieldDecorator

src/createBaseForm.js:183–223  ·  view source on GitHub ↗
(name, fieldOption)

Source from the content-addressed store, hash-verified

181 },
182
183 getFieldDecorator(name, fieldOption) {
184 const props = this.getFieldProps(name, fieldOption);
185 return fieldElem => {
186 // We should put field in record if it is rendered
187 this.renderFields[name] = true;
188
189 const fieldMeta = this.fieldsStore.getFieldMeta(name);
190 const originalProps = fieldElem.props;
191 if (process.env.NODE_ENV !== 'production') {
192 const valuePropName = fieldMeta.valuePropName;
193 warning(
194 !(valuePropName in originalProps),
195 `\`getFieldDecorator\` will override \`${valuePropName}\`, ` +
196 `so please don't set \`${valuePropName}\` directly ` +
197 `and use \`setFieldsValue\` to set it.`,
198 );
199 const defaultValuePropName = `default${valuePropName[0].toUpperCase()}${valuePropName.slice(
200 1,
201 )}`;
202 warning(
203 !(defaultValuePropName in originalProps),
204 `\`${defaultValuePropName}\` is invalid ` +
205 `for \`getFieldDecorator\` will set \`${valuePropName}\`,` +
206 ` please use \`option.initialValue\` instead.`,
207 );
208 }
209 fieldMeta.originalProps = originalProps;
210 fieldMeta.ref = fieldElem.ref;
211 const decoratedFieldElem = React.cloneElement(fieldElem, {
212 ...props,
213 ...this.fieldsStore.getFieldValuePropValue(fieldMeta),
214 });
215 return supportRef(fieldElem) ? (
216 decoratedFieldElem
217 ) : (
218 <FieldElemWrapper name={name} form={this}>
219 {decoratedFieldElem}
220 </FieldElemWrapper>
221 );
222 };
223 },
224
225 getFieldProps(name, usersFieldOption = {}) {
226 if (!name) {

Callers 10

renderMethod · 0.85
componentWillMountFunction · 0.85
dynamic-fields.jsFile · 0.85
componentWillMountFunction · 0.85
nested-field.jsFile · 0.85
App.jsFile · 0.85

Calls 3

supportRefFunction · 0.90
getFieldMetaMethod · 0.80

Tested by 2

renderMethod · 0.68
componentWillMountFunction · 0.68