Значения скрытых полей React-Final-Form

Я перехожу от Redux-forms к response-final-forms, и мне сложно понять, как обрабатывать скрытые значения формы. В redux -forms я мог бы сделать что-то вроде this.props.change("createdBy", this.props.user.profile.username), чтобы установить скрытое значение, но этот параметр, похоже, не является параметром в response-final-forms (или мне его не хватает).

Я думал, что могу использовать initialValues, который работает с новыми формами, но у меня возникают проблемы, если мне нужно добавить дополнительные значения в исходную форму. Например,

<Form
  onSubmit={ this.onSubmit }
  initialValues={
    item
      ? item
      : { createdBy: "Rachel", createdOn: new Date(), active: true }
  }
  render={({ handleSubmit, form, submitting, pristine, values }) => (
    <form onSubmit={handleSubmit}>
...

где элемент может выглядеть так:

{
   code: "WTTC",
   description: "Welcome to the Club",
   active: true,
   createdBy: "Rachel",
   createdOn:"02/23/2021",
   modifiedBy: null,
   modifiedOn: null,
}

Поэтому, если я устанавливаю initialValue формы с помощью указанного выше элемента, я хотел бы также установить значения modifiedBy и modifiedOn, которые я использую для this.props.change("createdBy", this.props.user.profile.username).

Какие-либо предложения?


person reactFullStackDeveloper    schedule 23.02.2021    source источник


Ответы (2)


Я совсем не знаком с этой библиотекой, но с точки зрения JS вы можете добиться этого, манипулируя начальным значением объекта item.

initialValues={
          item
            ? {...item,createdBy: this.props.user.profile.username, createdOn: new Date()}
            : { createdBy: "Rachel", createdOn: new Date(), active: true }
        }
person Amir-Mousavi    schedule 23.02.2021

              <Field name="fieldName">
                {({input}) => (
                  <div>
                    <div className="field-wrapper">
                      <input {...input} type="hidden" name="fieldName" value="1"/>
                    </div>
                  </div>
                )}
              </Field>

props.form.getFieldState('fieldName').change(value);

форма - это пример окончательной формы из

 <Form
        onSubmit={onSubmit}
        subscription={{ submitting: true }}
        validate={validate}
        initialValues={initValues}
        render={({ handleSubmit, form, submitting, pristine, values }) => (
person Jimubao    schedule 27.05.2021