1. 坑一:
报错:Cannot read property 'getFieldDecorator' of undefined
解决方法:
Form.create()(Questionary) // 用Form.create()加一层react
2. 坑二
报错:'form' is missing in props validation react/prop-types
缘由: 加了代码检查工具eslint
解决办法:工具
第一步: import PropTypes from 'prop-types'; 第二步: form: PropTypes.any
3. 坑三 怎么在组件中使用 getFieldDecorator
第一步:父级组件中这么写:须要用<Form></Form>嵌套一下ui
第二步:子组件这么用:this
ShowTextArea () { const data = this.props.data const validRules = data.textValidate const { getFieldDecorator } = this.props.form return <FormItem key={data.id}> {getFieldDecorator(`textareaValue`, { initialValue: validRules.initVal, // 默认文本 rules: [{ required: true, message: validRules.errMsg // 错误信息 }] })( <TextArea placeholder="Please enter content" /> )} </FormItem> }
当页面上多个子组件,要保证变量不同,这么写:spa
ShowTextArea () { const data = this.props.data const validRules = data.textValidate const { getFieldDecorator } = this.props.form return <FormItem key={data.id}> {getFieldDecorator(`textareaValue-${data.id}`, { initialValue: validRules.initVal, // 默认文本 rules: [{ required: true, message: validRules.errMsg // 错误信息 }] })( <TextArea placeholder="Please enter content" /> )} </FormItem> }
未完待续。。。。。eslint