Я обновился до material-ui v4.0.1 и вижу, что модалы теперь требуют переадресованный реф. У меня возникли проблемы с реализацией исправления для этого с использованием компонентов класса и диалогов.
Я пытался использовать React.createRef()
, а также React.forwardRef((props, ref) => (...)
в нескольких местах, но я не могу понять, как разрешить это предупреждение.
В моем родительском компоненте я отображаю пользовательский компонент
<ApolloFormDialog />
В ApolloFormDialog
Я отрисовываю по существу:
<Dialog ...>
{title}
{subtitle}
{form}
</Dialog>
Полное предупреждение: Warning: Failed prop type: Invalid prop 'children' supplied to 'Modal'. Expected an element that can hold a ref. Did you accidentally use a plain function component for an element instead?
Однако в настоящее время я использую компоненты класса. Миграция для использования компонентов функций сейчас не вариант, так как мое приложение довольно большое.
Я попытался добавить ссылку к ApolloFormDialog
как
<ApolloFormDialog ref={React.createRef()} />
а также упаковка ApolloFormDialog
класса с:
export default React.forwardRef((props, ref) => <ApolloFormDialog ref={ref} {...props}/>)
и добавление этого ref
в диалог как
<Dialog ref={this.props.ref} />
но предупреждение все еще сохраняется, и я не уверен, куда идти отсюда.