javascript - 在 React 中将登录更改为注销
问题描述
我正在尝试在用户登录时将登录按钮更改为注销。使用当前代码,该按钮实际上按预期执行(点击登录将显示登录表单),但按钮最终仍然说登录,但它会让用户注销。这是我的代码:
const handleSignOut = () => {
push("/");
localStorage.removeItem("token");
};
const [login, setLogin] = useState(false)
{login ? (
<Link
className="link"
to="/"
onClick={() => {
handleSignOut(); setLogin(false);
}}
>
Logout
</Link>
) : (
<Link className="link" to="/">
Login
</Link>
)}
我已经包含了最初设置为 false 的 handlesignout 和用于登录的 usestate。
解决方案
您需要将初始状态设置为 true;
const [login, setLogin] = useState(true) // 你的帖子是假的
这应该有效。
// login.js
const handleSignOut = () => {
push("/");
localStorage.removeItem("token");
};
const [login, setLogin] = useState(true)
const handleSubmit = () => {
setLogin(false);
}
{login ? (
<Link className="link" to="/">
Login
</Link>
) : (
<Link
className="link"
to="/"
onClick={() => {
handleSignOut();
setLogin(true);
}}
>
Logout
</Link>
)}
// assuming this is your form
// in your Form component on submitting, call this callback
"handleSubmit"
<Form
onSubmit={handleSubmit}
/>
推荐阅读
- html - 如何在引导程序中的两个文本框之间留出空间
- autohotkey - 匹配 AutoHotKey 中按下的两个 shift 键
- android - 使用导航组件以编程方式进入/退出动画
- python-3.x - 如何通过搜索列表中给出的关键字值在 Python pandas 数据框中添加新列?
- c# - C# 可空性未正确推断
- javascript - 就像我们在 android 中与 WhatsApp 共享数据(文本/文件/IMG)一样,我们可以为桌面 WhatsApp 应用程序做同样的事情吗?
- angular - 从 Markdown 文件中渲染角度分量
- python - “TypeError: unhashable type: 'Dimension'” with BatchNormalization(axis=CHANNEL_AXIS)(input)
- r - 根据列名将矩阵拆分为两个数组
- typescript - 处理泛型函数的记录