доступ к полевому декоратору antd 3x

#reactjs #forms #antd

Вопрос:

Я пытаюсь получить доступ к свойству getFieldDecorator в antd 3x в функциональном компоненте React, однако мне это не удается, я некоторое время искал в Google и не мог найти никаких ссылок об использовании getFieldDecorator с компонентами без состояния( функциональными компонентами), мне было интересно, сталкивался ли кто-нибудь с той же проблемой и удалось ли вам решить ее без перехода на компонент класса.

Мой код очень прост, ввод, завернутый в форму.Элемент

 const FormItem = Form.Item

const inviteModal = ( {props}) => {
return(
  <Form layout="vertical">
             <FormItem>
              {getFieldDecorator('email', {
                rules: [
                  {
                    required: true,
                    message: i18n.t('email'),
                  },
                ],
              })(<Input type="text" placeholder="email" />)}
            </FormItem> 
          
     )
}


export default Form.create()(inviteModal)

 

попытка доступа к «реквизиту» дает неопределенный результат, а также запись моего экспорта по умолчанию, например:

 
export default Form.create({getFieldDecorator})(inviteModal)

 

не работает ни то, ни другое.

Я, вероятно, буду использовать компоненты класса для форм, но я был бы признателен, если бы кто-нибудь мог рассказать мне о том, как я учусь.

Ответ №1:

Оказывается, это возможно, единственная проблема в том, как был импортирован реквизит, поэтому в основном для его использования вам нужно получить доступ к объекту реквизита из компонента, например:

 const InviteModal = (props) => {
  const {getFieldDecorator} = props.form
 

и вот ты идешь, хороший и работающий, надеюсь, это может помочь кому-то еще