我有一个按钮,当点击时,应该说WELCOME USER
。此外,我想在localStorage
中存储用户是否单击了按钮,以便在随后的页面加载中可以知道他们是否单击了按钮。如果用户 * 还没有 * 点击按钮,并且没有在本地存储中设置值,我们应该 * 不 * 显示文本WELCOME USER
。
import { useState } from "react";
function App(){
let [isLogin,setIsLoging] = useState(false)
localStorage.setItem("isLogin",false)
if (localStorage.getItem("isLogin") == "true") {
return (
<>
<h1>Welcome user</h1>
</>
);
} else {
return (
<>
<button onClick={login}>login</button>
</>
);
}
function login(){
setIsLoging(isLogin = true)
localStorage.setItem("isLogin", true)
}
}
export default App;
2条答案
按热度按时间6qftjkof1#
你说useState的setter是错误的。应该是
setIsLogin(true)
。此外,您还在每个渲染周期开始时将值设置为false,因此它永远不会为true。..您应该将对localStorage的调用放入useEffect中,而不是在每次重新渲染时都这样做。6ss1mwsb2#
编辑:我错过了你不想抱歉尝试这个