gpt4 book ai didi

javascript - 如何在三元运算符上导航 react 页面?

转载 作者:行者123 更新时间:2023-12-05 00:30:31 24 4
gpt4 key购买 nike

如果 LoggedIn 和 admin 在向/admin 发送 Prop 时为真,我正在尝试导航到管理页面,但这不起作用。你能帮忙吗?



export default function Auth() {


function login(e) {
e.preventDefault();
const data = { email, password };
axios
.post("http://localhost:3001/api/Login", data, { withCredentials: true })
.then((response) => {

if(!!response.data.loggedIn && !!response.data.admin){ return( <Navigate to="/admin" loggedIn={"response.data.loggedIn"} replace/> )}
else if(!!response.data.loggedIn && ! !!response.data.admin){ window.location.href = "https://www.dummyweb.com/webmail";}
else{return(alert("Username or Password is not valid!"))}
});

}

return (
<div>
<LogginForm/>
</div>
)
}

最佳答案

要有条件地呈现内容或重定向,您应该使用以下内容:react-router-dom由于您尝试使用 useNavigate我假设您使用的是 react-router-dom v6 并将从那里开始。
版本 6Redirect组件已在 react-router-dom 中删除v6。使用 Navigate组件,并指定 replace prop 进行重定向而不是正常导航。

export default function Admin(props) {
return props.isLoggedIn ? (
<div>
<Row className={stylesadmin.root}>
<Uploader/>
<ToastContainer/>
</Row>
</div>
) : (
<Navigate to="/Auth" replace />
);
}
版本 5
使用 Redirect组件重定向到“/Auth”。
export default function Admin(props) {
return props.isLoggedIn ? (
<div>
<Row className={stylesadmin.root}>
<Uploader/>
<ToastContainer/>
</Row>
</div>
) : (
<Redirect to="/Auth" />
);
}
更新
使用命令式导航/重定向。
导入 useNavigate (v6)/ useHistory (v5) Hook 并发出命令式重定向。
export default function Auth() {
const navigate = useNavigate(); // v6
// const history = useHistory(); // v5

function login(e) {
e.preventDefault();
const data = { email, password };

axios
.post("http://localhost:3001/api/Login", data, { withCredentials: true })
.then((response) => {
if (!!response.data.loggedIn && !!response.data.admin) {
navigate(
"/admin",
{
replace: true,
state: { loggedIn: response.data.loggedIn },
}
);
// history.replace(
// "/admin",
// {
// loggedIn: response.data.loggedIn,
// }
// );
} else if (!!response.data.loggedIn && ! !!response.data.admin) {
window.location.href = "https://www.dummyweb.com/webmail";
} else {
alert("Username or Password is not valid!");
}
});
}

return (
<div>
<LogginForm/>
</div>
);
}

关于javascript - 如何在三元运算符上导航 react 页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70301484/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com