Как перерендерить компонент с новыми initialValues?
Есть такой код:
<DataForm initialValues={data} />
Компоненты принимает initalValues, это дефолтные значения для внутренних полей компонента.
Мне нужно, что когда я запрашиваю новые данные с сервера, то пропса data обновлялась в компоненте, но так как это initalValues, то ничего не срабатывает, новые данные игнорируются.
Как решить данную проблему?
Доступ к DataForm компоненту нет, т.к. это компонент из либы.
Ответы (1 шт):
Автор решения: Ruslan Mart
→ Ссылка
Вы можете просто обновлять key у компонента, чтобы создавался новый instance.
const [formKey, setFormKey] = useState();
const extraRef = useRef({
isMounted: false,
});
// ...
useEffect(() => {
if (extraRef.current.isMounted) {
setFormKey(Math.random());
} else {
extraRef.current.isMounted = true;
}
}, [data]);
// ...
return (
<DataForm key={formKey} initialValues={data} />
);