希望此消息发现您做得很好 至于我,我一点都不好。从那以后一直在挣扎。如果我可以将其作为错误,那就不是真的。我的事情更像是一个误解...

问题描述 投票:0回答:1
在我面对的地方。

我有一种与MUI建立的形式。并以我的形式使用SELECT元素使用自动完成的MUI组件。对于验证,我选择了基于ZOD的基于模式的验证方法。对于该表格,我正在使用React Hook表单。

在我的架构中,我定义了一个对象,只有一个项目,即集合项目,这是一个带有所有必要验证的字符串。

EAFE选择选项是一个对象。 React Hook表单已经处理了Onchange事件。

说话。每当我选择一个新选项时,在React Hook表单DevTool中,集合的值是一个对象。

我想实现的是,将所选选项的UUID设置为自动完成的值,并将该UUID的相应标签显示为所选选项的标签。

如果这是不可能的,我想知道是否有一种方法告诉ZOD可以接收一个对象作为值,然后在表单提交中操作已发送的数据。

这是工作项目的代码和框链接:

https://codesandbox.io/s/autocomplete-trinaining-lvhkz7

任何帮助都会很乐意接受

已经花了数千个小时试图找到如何实现这一目标,但null

P:React Hook形式是文档上右上角的小粉红色框。附加文件 我试图编写一种自定义on Change方法,而不是涉及钩钩形式的一种。

MUI自动完成的值始终是对象。这与其他MUI控件(例如Select)不同,您可以遵循{value,label}模式。在MUI上,关于此主题有一个开放的问题:

Https://github.com/mui/material-ui/issues/23708. ZOD具有.Transform函数,可用于接受对象,然后将它们变成值。这对这种情况可能会有所帮助。此外,您可以仅提取handlesubmit函数中的值。

eg:

autocompleteOption: z .object({ id: z.number(), }) .transform((val) => val.id)

文献:

https://zod.dev/?id =transform

如果您使用.transform,请注意输入类型的架构类型在输入中与输出不同。请参阅
reactjs material-ui react-hook-form zod
1个回答
0
投票

https://zod.dev/?id =zodtype-with-zodeffects。默认值还需要遵循输入类型。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.