使用材质UI对话框时,“无法读取null的属性'offsetWidth'”

mil*_*z.p 2 reactjs material-ui

当我用材质UI“对话框”包装“表单”元素时,出现“无法读取null的属性'offsetWidth'”错误,这使InputLabel的自动宽度无法工作。

当我删除Dialog时,它可以正常工作,并且在ComponentDidmount上可以正确读取InputLabelRef。

沙箱示例:https//codesandbox.io/s/1q98z07w13

我需要用Dialog包裹它。这里可能是什么问题?

Mat*_*ttC 5

发生这种情况的原因componentDidMount是,即使默认状态为,调用时对话框内部的组件也不会呈现open === true

这里的技巧是确保在componentDidMount调用表单时始终挂载您的表单。为此,您需要将表单分成一个单独的组件,该组件位于Dialog组件内部。componentDidMountDialog显示单独的组件时调用此方法,而不是在其Dialog本身已渲染时调用。

我已经更新了您的沙箱,以包括我提到的更改:https : //codesandbox.io/s/zw705046w3