#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
и вот ты идешь, хороший и работающий, надеюсь, это может помочь кому-то еще