【发布时间】:2021-12-23 20:41:22
【问题描述】:
具有最小工作示例的 Codesandbox:https://codesandbox.io/s/mystifying-lake-m0oxc?file=/src/DemoForm.tsx
基本上,我有一个 AutoComplete 下拉列表,它使用 useField 钩子绑定到 Formik 表单中。这会在任何更改时正确设置值,但验证似乎不会在我期望的时候触发。
验证成功运行并在以下情况下消除错误:
- 另一个字段已更改
- 在下拉列表中选择一个值后点击“背景”
我的预期和想要的是验证应该在选择值时立即运行。
复制:
- 点击类别下拉菜单
- 选择一个值,关闭下拉菜单
- 确认错误仍然显示(在字段和打印输出中)
- 单击屏幕上的其他位置。这应该会触发验证并清除错误。
有什么建议吗?
编辑: 我已经测试了一个使用 react-select 作为下拉菜单的等效实现,并且遇到了同样的问题,所以我认为它与 MUI 没有直接关系。
【问题讨论】:
-
需要专门使用
useField吗? -
我使用 useField 是因为我想将(稍微复杂的)表单输入拆分为一个单独的组件并将其导入主表单。有没有更好的方法?
标签: reactjs material-ui formik formik-material-ui