使用Formik构建表单时,嵌套initialValues子字段无法访问的问题求助
解决Formik嵌套字段访问失败的问题
嘿,我来帮你捋捋这个问题!你现在遇到的无法访问principalAddress字段的情况,主要是两个小细节出错了:
- 字段路径不完整:你的
initialValues里,value对象是嵌套在address对象下面的,不能直接用value.xxx作为字段名,必须从根节点开始写完整路径。 - 路径里的多余空格:你写的
name="value. seconderyAddress"里,点号后面多了个空格,这会让Formik把seconderyAddress(带空格)当成字段名的一部分,自然匹配不到正确的字段。
先明确你的initialValues结构:
{ address: { title: "this a title", value: { principalAddress: "test", seconderyAddress: "" } } }
要正确访问principalAddress,你需要把Field的name属性写成完整的嵌套路径:
<Field component={TextField} fullWidth type="text" name="address.value.principalAddress" />
另外顺便提一句,你拼写的seconderyAddress应该是secondaryAddress(少了个'a'),虽然不影响功能,但规范拼写能避免后续的混淆~ 对应的正确写法是:
<Field component={TextField} fullWidth type="text" name="address.value.secondaryAddress" />
Formik的字段路径是严格按照initialValues的层级来解析的,必须从顶层对象开始逐层指定,不能跳过外层节点,同时要注意路径里不能有多余的空格或特殊字符,这样就能正常访问嵌套字段啦!
内容的提问来源于stack exchange,提问作者khaliloos benk
相关产品推荐
相关产品推荐

