传递类型“复选框”未注册为react-final-form

时间:2018-10-29 16:33:11

标签: react-final-form

我遇到react-final-form的问题,它告诉我我没有通过type=checkbox,因此无法正确打开包装。我有些困惑,因为在示例中,自定义组件确实将type传递给了它。可以在下面找到一个实时示例:

https://codesandbox.io/s/9o227yp3q4

我看到的是输入以未定义状态开始,然后在用户输入时切换为true或false。从不确定的状态开始,我认为是导致问题的原因,但我并不乐观。

我收到的错误消息是

Warning: You must pass `type="checkbox"` prop to your Field(attendees[0].isHost) component. Without it we don't know how to unpack your `value` prop - "undefined".

1 个答案:

答案 0 :(得分:0)

我发现我需要在type上传递<Field />,以便react-final-form可以解压值并正确应用它们。

export const CustomField: React.SFC<Props> = ({
  label,
  name,
  placeholder,
  type
}) => (
   <Field name={name} type={type}>
     {({ input, meta }) => (
       <div>
        <StyledLabel htmlFor={name}>{label}</StyledLabel>
        <StyledInput
          {...input}
          id={name}
          placeholder={placeholder}
          type={type}
        />
       {meta.error && meta.touched && <span>{meta.error}</span>}
      </div>
     )}
   </Field>