Причина, по которой это происходит, заключается в том, что компоненты внутри вашего диалога не отображаются при вызове componentDidMount
, даже если ваше состояние по умолчанию open === true
.
Хитрость заключается в том, чтобы убедиться, чточто ваша форма всегда будет монтироваться при вызове componentDidMount
.Для этого вам нужно разделить вашу форму на отдельный компонент, который находится внутри вашего Dialog
компонента.Этот способ componentDidMount
вызывается, когда Dialog
отображает ваш отдельный компонент, а не когда сам Dialog
рендерится.
Я обновил вашу песочницу, чтобы включить упомянутые изменения: https://codesandbox.io/s/zw705046w3