如何将默认值传递给React中的输入(使用props)

Liz*_*ody 0 javascript field input reactjs

我有此字段呈现一个Input组件RenderInput。我需要将默认值传递给它,例如value="100"

      <Field
        name="hours"
        type="number"
        placeholder="Ingrese las horas para esta categoría"
        component={RenderInput}
        onChange={(event) => {
          handleSubmit(currentValues => this.debounceSubmitProduction({
            ...currentValues,
            hours: event.target.value,
          }))();
        }}
      />
Run Code Online (Sandbox Code Playgroud)

这是RenderInput组件:

const RenderInput = ({
  input,
  type,
  disabled,
  readOnly,
  placeholder,
  meta: { touched, error },
  onKeyDown,
  innerRef,
}) => (
  <div>
    <input
      {...input}
      type={type}
      disabled={disabled}
      readOnly={readOnly}
      placeholder={placeholder}
      className={`font-300 ${touched && error && 'has-error'}`}
      onKeyDown={onKeyDown}
      ref={innerRef}
    />
  </div>
);
Run Code Online (Sandbox Code Playgroud)

如果我将其value="100"放入RenderInput组件中,则可以正常工作,但是如果我尝试将该值作为prop传递给RenderInput组件,则它将不起作用。如何将属性value从传递<Field />给RenderInput?

Roy*_*y J 5

https://reactjs.org/docs/un受控组件.html#default-values

对于不受控制的组件,您通常希望React指定初始值,但使后续更新不受控制。要处理这种情况,您可以指定defaultValue属性而不是value

  • 要附带这个答案:如果您不希望用户控制输入的状态,则仅使用 `defaultValue` 属性。如果他们要对输入进行更改,请改用 `value` 属性。这将使输入受到控制,并将通过从父组件传递到 Field 组件的“setState”函数进行更新。 (2认同)