Я использую избыточную форму для элементов формы. Значения текстового поля отображаются при отправке, но значения переключателя не отображаются. Когда я отправляю форму, я могу получить значения для электронной почты, передать, но не роль, которая является переключателем. Я только что использовал {...input}
в элементе ввода, потому что этого должно быть достаточно, я думаю.
Вот как я это сделал
radio.js
const CardToggle = ({ input, meta: { touched, error }, ...props }) => {
return (
<React.Fragment>
<label>
<StyledInput {...input} type="radio" />
<StyledBox>
<CenterElement>{props.children}</CenterElement>
</StyledBox>
</label>
{touched && error && <span>{error}</span>}
</React.Fragment>
);
};
export default CardToggle;
submit = (values, mutation) => {
console.log('values', values);
// mutation({ variables: values });
};
<styled.Form
onSubmit={handleSubmit(val => this.submit(val, mutation))}
>
<Field name="email" label="Email" component={TextField} />
<Field name="password" label="Password" component={TextField} />
<AccountType />
</Styled.Form>
<Grid>
<Field name="role" component={CardToggle} value="enduser">
<UserIcon size={60} />
<Title>End User</Title>
</Field>
<Field name="role" component={CardToggle} value="company">
<CompanyIcon size={60} />
<Title>Company</Title>
</Field>
</Grid>