Сумка Formik Field пуста, когда вложена в сторонний компонент

Я использую Формик Field Компонент для визуализации ввода:

<Formik 
  initialValues={initialValues}
  onSubmit={onSubmit}
  render={formProps => (
    <Form>
      <Field name="lastName" render={({ field, form }) => (
        <input {...field} placeholder="lastName" />
      )} />
    </Form>
)} />

Вот CodeSandbox, который иллюстрирует проблему. Вы увидите, что если вы поменяете определение столбца продукта на то, которое просто отображает продукт в виде строки, а не использует ввод Formik, это работает нормально.

В приведенном выше коде Formik, кажется, "автоматически" определяет мешок Formik form объект в Field "s render функция.

Это работало без проблем, пока я не интегрировал Field в стороннюю библиотеку, в моем случае, рендеринг ее в ячейку таблицы agGrid. Когда я делаю это, я получаю TypeError: this.props.formik.registerField не является ошибкой консоли браузера функций. Отлаживая эту ошибку, я вижу следующее в скомпилированном коде Formik:

FieldInner.prototype.componentDidMount = function () {
  this.props.formik.registerField(this.props.name, this);
};

Когда я проверяю this.props.formik которая должна быть моей сумкой Formik, это пустой предмет. Это тот же объект, который я вижу, когда ставлю точку останова в Field "s render функция. Когда я проверяю этот объект на наличие экземпляров моего Field вне agGrid, это полностью заполненная сумка Formik, включающая initialValue реквизит, registerField функция и т. д.

Почему Formik неправильно извлекает сумку Formik form объект, когда мой Field находится в ячейке таблицы agGrid и как я могу решить эту проблему?

1 ответ

Вы используете версию React >=16? Если так, то похоже, что AgGridReact не поддерживает новую версию API контекста, которую Formik использует за кулисами.

https://github.com/ag-grid/ag-grid-react/issues/131

Либо подождите, пока AgGridReact выпустит новую версию, либо рассмотрите возможность понижения до версии React <16, чтобы Formik вернулся к старому контекстному API.

Другие вопросы по тегам