Изменить значение поля в Formilk на основе проп? - PullRequest
0 голосов
/ 08 мая 2019

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

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

У меня нет проблем с сокрытием опции B на основе значения реквизита, но я не могу понять, как установить значение поля на значение видимой опции.

Другими словами, есть ли способ установить значения полей Formik из родительского компонента?

1 Ответ

0 голосов
/ 08 мая 2019

Это можно сделать двумя способами: сначала , используя стандартные компоненты класса реакции (с жизненными циклами).Это можно сделать с помощью синтаксиса <Formik component={InnerComponent} /> или withFormik HOC.

Используя компонент класса, вы можете использовать метод componentDidUpdate для вызова метода formik (переданного как prop) setFieldValue.

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

...