reactjs - React-bootstrap findDOMNode 在 StricMode 错误中被弃用
问题描述
我正在使用 React 和 React-bootstrap 开发应用程序。我目前遇到的问题是,当我单击按钮以在移动设备上展开导航栏时,会引发以下错误:
到目前为止,我发现这与此功能有关。我有一个条件,如果用户没有登录,它不应该在屏幕上打印导航链接。
const LoggedUserMenu = () => (
<>
<Nav.Link as={Link} to="/">
Meus Dragões
</Nav.Link>
<Nav.Link as={Link} to="/cadastrar-dragoes">
Cadastrar Dragão
</Nav.Link>
<Nav.Link as={Link} to="/alterar-cadastro">
Editar Usuário
</Nav.Link>
<Nav.Link onClick={handleLogout}>Logout</Nav.Link>
</>
);
这是完整的代码:
import React, { useState } from "react";
import { Link, useHistory } from "react-router-dom";
import { Navbar, Nav, Alert } from "react-bootstrap";
import { GiHydra } from "react-icons/gi";
import { useAuth } from "../contexts/AuthContext";
export default function Appbar() {
const [error, setError] = useState("");
const { logout, currentUser } = useAuth();
const history = useHistory();
async function handleLogout() {
setError("");
try {
await logout();
history.push("/login");
} catch {
setError("Failed to log out");
}
}
const LoggedUserMenu = () => (
<>
<Nav.Link as={Link} to="/">
Meus Dragões
</Nav.Link>
<Nav.Link as={Link} to="/cadastrar-dragoes">
Cadastrar Dragão
</Nav.Link>
<Nav.Link as={Link} to="/alterar-cadastro">
Editar Usuário
</Nav.Link>
<Nav.Link onClick={handleLogout}>Logout</Nav.Link>
</>
);
return (
<div>
<Navbar
collapseOnSelect
expand="lg"
variant="dark"
fixed="top"
style={{ background: "#191D24" }}
>
<Navbar.Brand href="/">
<GiHydra size="2rem" className="mr-3" style={{ fill: "#f2a365" }} />
DragonDex
</Navbar.Brand>
<Navbar.Toggle aria-controls="responsive-navbar-nav" />
<Navbar.Collapse
id="responsive-navbar-nav"
className="justify-content-end"
>
<Nav>{currentUser ? <LoggedUserMenu /> : ""}</Nav>
</Navbar.Collapse>
</Navbar>
{error && <Alert variant="danger">{error}</Alert>}
</div>
);
}
有谁知道如何解决这个问题?
解决方案
推荐阅读
- javascript - 使用控制比例线保存地图
- java - 如何从应用程序颜色主题以编程方式设置背景颜色
- reactjs - 如何在反应列表中隐藏特定元素?
- algorithm - 查找总和为特定值的所有子集,然后选择这些子集的最有价值的组合
- c# - 用户控件依赖属性在 x64 中为空
- java - session.getCurrentSession().createCriteria(MyClass.class) 弃用了如何使用 .addOrder() 现在
- python - 附加 true 或 false 的函数无法正常工作
- laravel - 安装letsencrypt后如何修复路由器上的404 nginx错误
- python - 有没有更好的方法在 pygame 中创建瓷砖地图?
- javascript - Firestore 设置错误:“timestampsInSnapshots 设置现在默认为 true”