Как прослушать изменения в поле formik с вложенными значениями? - PullRequest
0 голосов
/ 12 февраля 2020

То, что я хочу сделать, - это когда определенное поле из formik изменяется, что-то сделать.

например,

useEffect(() => {
    // do something
}, [values.someField])

Но если у меня есть динамическое значение c name (из реквизита) , это может быть что угодно (например, field.name, field[0].otherField, level1.level2.level3), как я могу сделать этот эффект?

const MyComponent = ({ name }) => {
    const { values } = useFormikContext()

    useEffect(() => {
        // do something
    }, [/* what to put here? */]) 

    // ...
}

1 Ответ

1 голос
/ 13 февраля 2020

Я понял, мне нужно использовать getIn из formik

import { useFormikContext, getIn } from `formik`

const MyComponent = ({ name }) => {
    const { values } = useFormikContext()

    const fieldValue = getIn(values, name)

    useEffect(() => {
        // do something when some field in the form changes
    }, [fieldValue]) 

    // ...
}
...