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
这里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