Open bhuvanmehra opened 5 years ago
I think that we could initialize value after react rendering, that means should set initial value on useEffect
, in this case, a temporary solution is:
useEffect(() => {
form.initialize({
name: {
firstName: 'Clark',
lastName: 'Kent',
}
});
}, []);
Thanks @l1nyanm1ng
For future visitors to this issue, you can also use useMemo
to make sure the object reference stays the same
const initialValues = useMemo(() => ({
name: {
firstName: 'Clark',
lastName: 'Kent',
}
}), [])
const Test = () => {
const { form, handleSubmit, values, pristine, submitting } = useForm({
initialValues
});
}
Thanks @Jephuff for the work around.
Are you submitting a bug report or a feature request?
Bug
What is the current behavior?
Using a nested JSON object in initialValues causes infinite re-renders. Also, form fields can't be changed.
Steps-
Example -
What is the expected behavior?
Form should render once with initial values. And we should be able to update form field values.
Sandbox Link
https://codesandbox.io/s/cold-https-6v26o
What's your environment?
node: v10.2.1 react-final-form-hooks: "2.0.0", Mac OS Mojave 10.14.2
Other information
Screenshot