【发布时间】:2021-08-10 14:48:21
【问题描述】:
我有一个使用 StrictMode 的基于钩子(无类)的简单 ReactJS 应用程序。
我正在使用 React 版本 16.13.1 和 Material-UI 版本 4.9.10。
在 Appbar 中,我使用的是 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)))
我在网上找到了有关此问题的一些参考资料,但仍然无法弄清楚如何解决此问题。
有人可以为这个问题添加一些解决方法吗?
谢谢
【问题讨论】:
-
提交有关 Material-UI 的问题。或者 fork repo,修复它,发布 PR,使用你的 fork 直到 PR 被合并或 issue 被弃用。目前这只是一个警告,在第三方代码中。
-
这里是讨论这个的问题:github.com/mui-org/material-ui/issues/13394
-
感谢您的链接
-
另外,请注意“使用
ReactDOM.createRoot和/或React.ConcurrentMode时默认启用StrictMode。”。这里有一些很好的讨论:github.com/styled-components/styled-components/issues/2154 -
当我使用 Tooltip 组件并将自定义组件传递给
title道具而不是传递简单字符串时,我也会收到此错误!!!
标签: reactjs material-ui deprecation-warning react-navigation-drawer strict-mode