gpt4 book ai didi

reactjs - 使用 React Hook Form 注册嵌套对象

转载 作者:行者123 更新时间:2023-12-02 18:17:55 26 4
gpt4 key购买 nike

我已经使用 RHF 工作了一段时间,它实际上帮助了很多,但我一直在尝试做一些我可能没有足够知识的事情。

所以我有一个嵌套对象,我把它带到了我的 componen throw props

const Child = ({ globalObject, register }) => {
const renderNested = Object.entries(globalObject.nestedObject);


return (
<span>
{renderNested.map(([key, value], index) => {
return (
<div key={index}>
<Field
type="text"
label={key}
name{`nestedObject.${key}`}
defaultValue={value}
ref={register}
/>
</div>
);
})}
</span>

);
};

很好,现在,这个 nestedObject 中的一个键有另一个对象作为值,当我映射它们并显示时,该字段将显示:[object Object]例如,如果我使用 useState,我知道我将如何解决该问题。不确定这是否是一个好的做法,但我会选择类似的东西:

defaultValue={typeof value === 'someKey' ? value[key] : value}

但在这种情况下使用寄存器(我想使用它,因为它使我免于其他噩梦)我不确定如何解决这个问题。我是否应该在外部过滤数组,然后在一侧呈现没有对象作为值的键,然后呈现其余的键?在我看来,它必须比这更好。谁能给点建议?

只是为了澄清,nestedObject 看起来像:

nestedObject: {
key: value
key: {key:value}
}

最佳答案

根据 register 的文档,您可以使用 . 点符号访问字段方法。所以 register("name.key") 可以检索嵌套对象和数组,但是请注意,在 React Hook Form v7 中 syntax to retrieve nested array items changedarrayName[0]arrayName.0

您的组件将类似于以下内容:

const Child = ({ globalObject, register }) => {
const nestedKeys = Object.keys(globalObject.nestedObject);

return (
<>
{nestedKeys.map((key) => (
<Field key={key} {...register(`nestedObject.${key}`)} />
))}
</>
);
};

should not use index as key prop在这种情况下,因为每个数组元素都有另一个稳定标识符,它来自唯一的嵌套对象键。

关于reactjs - 使用 React Hook Form 注册嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71301798/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com