我有一个使用最终形式数组的表单。表单和验证工作正常,但是,当我在组件内部进行状态更改时,它会重置我的所有值。
我能够用react-final-form-arrays提供的相同示例复制这个问题:
https://codesandbox.io/embed/react-final-form-field-arrays-om6p6
我添加了一个按钮来切换状态更改。本质上,只需尝试在表单中填充值,然后更改状态。表单将会重置,但我不明白为什么会这样。如果删除initialValues,则不会发生这种情况。
有人知道为什么会这样吗?
发布于 2019-06-05 14:57:17
2个问题。
这是一个非常常见的初学者错误,你应该仔细阅读react是如何进行引用相等检查的,以确定要重新呈现哪些组件。
固定版本:https://codesandbox.io/embed/react-final-form-field-arrays-c6hgu
发布于 2020-03-13 16:33:14
只需记住箭头函数中的initialValues,然后将其传递给表单组件:
const initialValues = useCallback(() => {
return {data: [{}]};
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);将该函数作为表单组件的initialValues属性传递。
https://stackoverflow.com/questions/56454736
复制相似问题