navigate.push 不是一个函数
Posted
技术标签:
【中文标题】navigate.push 不是一个函数【英文标题】:navigate.push is not a function 【发布时间】:2022-01-09 00:27:34 【问题描述】:我在 react reuter dom 版本中遇到与 navigate.push 相关的错误不是函数。 以下错误扰乱了我的整个干净代码,如果有人帮助我解决这个问题,那就太好了。
This is my code
import Link, useNavigate from "react-router-dom";
import auth from "./firebase";
function Login()
const navigate = useNavigate();
const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
const signIn = (e) =>
e.preventDefault();
auth
.signInWithEmailAndPassword(email, password)
.then((auth) =>
navigate.push("/");
)
.catch((error) => alert(error.message));
;
const register = (e) =>
e.preventDefault();
auth
.createUserWithEmailAndPassword(email, password)
.then((auth) =>
//it successfully created a new user with email and password
if (auth)
navigate.push("/");
)
.catch((error) => alert(error.message));
;
【问题讨论】:
【参考方案1】:如果您使用的是 React Router v6:
使用navigate("/")
而不是navigate.push("/")
【讨论】:
谢谢大哥,非常感谢它现在正在工作 @VishalMishra 请标记为正确答案 如果我使用:BrowserRouter as useNavigate,如何使它工作,因为当我尝试它说 Navigate 不是一个函数时以上是关于navigate.push 不是一个函数的主要内容,如果未能解决你的问题,请参考以下文章
React Native Navigation v2 sideMenu 无法导航到屏幕
如何修复 TypeError:navigation.setOptions 不是函数