希望根据以下初始值得到一些帮助。这只是我的数据片段,但我试图在 itinerary
级别执行 Formik FieldArray,嵌套深度为三个级别,但不确定要为此 FieldArray 名称分配的名称。
{itineraryGroups[itineraryDetails].map((idetail, index) => (
<FieldArray
name={`itineraryGroups.${index}.itineraryDetails.itinerary`}
render={(arrayHelpers) => (
<React.Fragment>
{idetail.itinerary.map((i, idx) => (
只是不确定我的 FieldArray 名称在 itinerary
级别应该是什么,因为这不起作用:name={itineraryGroups.${index}.itineraryDetails.itinerary
}
显然这里,itineraryDetails
也是一个数组,所以不确定这是否也需要一个数组索引。
以下是我的初始值设置:
const itineraryGroup = {
itineraryName: "",
itineraryDetails: [
{
day: "Monday",
itinerary: [
{
day: "Day 1",
description: "description one"
}
]
},
{
day: "Tuesday",
itinerary: [
{
day: "Day 2",
description: "description two",
}
]
}
]
};
const INITIAL_FORM_STATE = {
name: '',
itineraryGroups: [itineraryGroup]
};
<Formik
enableReinitialize
initialValues={{
...INITIAL_FORM_STATE
}}
答案 0 :(得分:1)
如果 itineraryGroups
是一个只有 1 个元素的数组,就像您声明的那样,您可以像这样更新:
{itineraryGroups[0].itineraryDetails.map((idetail, index) => (
<FieldArray
name={`itineraryGroups[0].itineraryDetails[${index}].itinerary`}
render={(arrayHelpers) => (
<React.Fragment>
{idetail.itinerary.map((i, idx) => (
更新:如果itineraryGroups
有多个元素,则需要添加更多的map
:
{itineraryGroups.map((iGroup, indexGroup) => (
{iGroup.itineraryDetails.map((idetail, index) => (
<FieldArray
name={`itineraryGroups[${indexGroup}].itineraryDetails[${index}].itinerary`}