如何解决“在StrictMode中弃用了findDOMNode”错误?

用户名

当我单击触发抽屉打开的按钮时,在控制台中出现“ findDOMNode在StrictMode中已弃用”

这是按钮组件容器,按钮组件名为Sidenav

import Sidenav from './Sidenav';


function Header() {
    return (
        <div className="header">
                    <div>
                        <Sidenav />
                    </div>
            </div>
        </div>
    );
}

export default Header;

这是Sidenav组件

import React, { useState } from 'react';
import clsx from 'clsx';

import { makeStyles } from '@material-ui/core/styles';
import Drawer from '@material-ui/core/Drawer';
import List from '@material-ui/core/List';
import MenuRoundedIcon from '@material-ui/icons/MenuRounded';

//sidenav width and styles
const useStyles = makeStyles({
    list: {
        width: 200
    },
    fullList: {
        width: 'auto'
    }
});

function Sidenav() {
    // Functionality for sidenav
    const classes = useStyles();
    const [ state, setState ] = useState({
        right: false
    });

    const toggleDrawer = (anchor, open) => (event) => {
        if (event.type === 'keydown' && (event.key === 'Tab' || event.key === 'Shift')) {
            return;
        }

        setState({ ...state, [anchor]: open });
    };

    // Links go here
    const list = (anchor) => (
        <div
            className={clsx(classes.list, {
                [classes.fullList]: anchor === 'top' || anchor === 'bottom'
            })}
            role="presentation"
            onClick={toggleDrawer(anchor, false)}
            onKeyDown={toggleDrawer(anchor, false)}
        >
            <List>
                {/* {[ 'Inbox', 'Starred', 'Send email', 'Drafts' ].map((text, index) => (
                    <ListItem button key={text}>
                        <ListItemIcon>{index % 2 === 0 ? <InboxIcon /> : <MailIcon />}</ListItemIcon>
                        <ListItemText primary={text} />
                    </ListItem>
                ))} */}
            </List>
            {/* <Divider /> */}
            <List>
                {/* {[ 'All mail', 'Trash', 'Spam' ].map((text, index) => (
                    <ListItem button key={text}>
                        <ListItemIcon>{index % 2 === 0 ? <InboxIcon /> : <MailIcon />}</ListItemIcon>
                        <ListItemText primary={text} />
                    </ListItem>
                ))} */}
            </List>
        </div>
    );

    return (
        <div>
            <button onClick={toggleDrawer('right', true)}>
                <MenuRoundedIcon />
            </button>
            <Drawer anchor={'right'} open={state['right']} onClose={toggleDrawer('right', false)}>
                {list('right')}
            </Drawer>
        </div>
    );
}

export default Sidenav;

这是单击Sidenav组件作为按钮时的控制台错误

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 here: 
    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)))
    in WithStyles(ForwardRef(Drawer)) (at Sidenav.js:69)
    in div (at Sidenav.js:65)
    in Sidenav (at Header.js:37)
    in div (at Header.js:36)
    in div (at Header.js:11)
    in div (at Header.js:10)
    in Header (at App.js:10)
    in div (at App.js:9)
    in App (at src/index.js:9)
    in StrictMode (at src/index.js:8)

如何解决控制台错误?

穆罕默德阿里

错误来自material-uiTransition组件。也许他们会在将来修复它,但不用担心您不会在生产中看到此错误。不过,如果您不需要,StrictMode可以将其从中删除src/index.js

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何解决defineProperty弃用错误?

警告:findDOMNode在StrictMode中已弃用。findDOMNode传递了StrictMode内部的Transition实例

如何解决服务器启动的弃用错误?

Selection.addRange() 已弃用 - 如何解决错误

如何解决@CucumberOptions中的format选项弃用?

如何解决 OnActivityCreated 中的这个弃用问题?

如何解决Android中已弃用的View方法?

错误过滤器已弃用 如何解决 vue.js 3 中的此错误

带有JS转换警告的对话框,提示“ findDOMNode在StrictMode中已弃用”

StrictMode中不推荐使用findDOMNode,而是如何使用引用

findDOMNode 在 StrictMode 中已弃用。findDOMNode 传递了一个 Transition 实例(由 MUI Backdrop 创建),它在 StrictMode 内

如何解决此弃用警告

会不会出现这个错误“findDOMNode 在 StrictMode 中被弃用”。部署我的反应项目时失败?

如何解决登录页面中的错误

如何解决Grails中的BuildConfig错误

如何解决 Python 中的“MissingSchema”错误?

“如何解决错误:';' 预计在 Java 中?”

如何解决NodeJS JavaScript中的...错误

如何解决 Haskell 中错误的缩进

如何解决Python中的内存错误

如何解决ExecuteReader();中的错误?

如何解决操作栏中的错误

如何解决Java中的NullPointerException错误?

如何解决IDLE中的ModuleNotFound错误?

此查询中的错误:如何解决?

如何解决蜂巢中的执行错误?

在MiniZinc中如何解决此错误?

如何解决Python中的编码错误

如何解决Odoo 8中的错误?