Material-UI Drawer - findDOMNode устарела в StrictMode - PullRequest
3 голосов
/ 15 апреля 2020

У меня есть простое приложение ReactJS, основанное на хуках (без классов), использующих StrictMode.

Я использую React версии 16.13.1 и Material-UI версии 4.9.10.

В панели приложений я использую Drawer.

    <div className={classes.root}>
        <AppBar position="static">
            <Toolbar>
                <IconButton
                    edge="start"
                    className={classes.menuButton}
                    color="inherit"
                    aria-label="menu"
                    onClick={handleDrawerOpen}>
                    <MenuIcon />
                </IconButton>
                <Typography variant="h6" className={classes.title}>
                    Online Information
                </Typography>
            </Toolbar>
        </AppBar>
        <Drawer
            variant="persistent"
            anchor="left"
            open={open}
        ></Drawer>
    </div>

Я замечаю, что когда я открываю ящик, я получаю следующее предупреждение.

Warning: findDOMNode is deprecated in StrictMode. findDOMNode was passed an instance 
of 
Transition which is inside StrictMode. Instead, add a ref directly to the element you 
want to reference. Learn more about using refs safely ....
in div (created by Transition)
in Transition (created by ForwardRef(Fade))
in ForwardRef(Fade) (created by ForwardRef(Backdrop))
in ForwardRef(Backdrop) (created by WithStyles(ForwardRef(Backdrop)))
in WithStyles(ForwardRef(Backdrop)) (created by ForwardRef(Modal))
in div (created by ForwardRef(Modal))
in ForwardRef(Portal) (created by ForwardRef(Modal))
in ForwardRef(Modal) (created by ForwardRef(Drawer))
in ForwardRef(Drawer) (created by WithStyles(ForwardRef(Drawer)))

Я нашел в Интернете ссылку на эту проблему, но все еще не могу понять, Как решить эту проблему.

Может кто-нибудь, пожалуйста, добавьте обходной путь для этой проблемы?

Спасибо

1 Ответ

0 голосов
/ 02 мая 2020

Я думаю, что проблема с StrictMode и производственной сборкой не существует

также заменить

ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById('root')
);

на

ReactDOM.render(
  <React.Fragment>
    <App />
  </React.Fragment>,
  document.getElementById('root')
);

было бы полезно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...