getIn 与 Formik 的作用是什么?

What is the role of getIn with Formik?

这里getIn的作用到底是什么?它只是从定义的字段中读取和分配值吗?

{fileds.map(({ formikRef, ...input }) => (
    <TextField
       key={formikRef}
       helperText={
       getIn(formik.touched, formikRef)
                    ? getIn(formik.errors, formikRef)
                    : ''
                }
       value={getIn(formik.values, formikRef)}
      {...input}
      variant="outlined"
      margin="normal"
    />
))}

getIn 是 Formik 中包含的实用函数。您可以使用它通过对象的路径从对象中提取深度嵌套的值。该路径使用点语法表示以访问对象属性和方括号以访问数组。

例如:

var exampleFormValues = {
  people: [
    {
      name: 'Alice',
      contactDetails: {
        email: 'alice@example.com',
        mobilePhone: '07123 456789'
      }
    },
    {
      name: 'Bob',
      contactDetails: {
        email: 'bob@example.com',
        mobilePhone: '07999 999999'
      }
    },
  ]
};

// this will return 'alice@example.com'
var emailOfFirstPerson = getIn(exampleFormValues, 'people[0].contactDetails.email');

它与 lodash 中的 get 函数基本相同,在此处记录:https://lodash.com/docs/#get