【发布时间】:2021-08-14 17:50:17
【问题描述】:
我想制作一个点赞按钮,用户可以在其中点击和点赞。当用户单击按钮时,即使刷新后仍保持红色。我该如何实现?
我有这个代码。当我刷新本地存储被重置。我该如何解决这个问题?
useEffect(() => {
setColor(window.localStorage.getItem('color'));
}, []);
useEffect(() => {
window.localStorage.setItem('color', color);
}, [color]);
const handleClick = () => {
setClicked(prevValue => !prevValue)
if(clicked){
setColor("red")
}else{
setColor("")
}
}
<div className="App">
<div className="container">
<button style={{backgroundColor: color}} onClick={handleClick} > +</button>
</div>
</div>
【问题讨论】:
-
在将项目设置为存储时,您可以尝试添加 if check 吗? ` if(color)` 像这样
-
在codesandbox中测试,效果很好
-
我认为问题出在我的浏览器中。我让它停止刷新,但我仍然需要单击两次才能使其变为红色。我认为这与设置后立即使用的状态有关。 “如果(点击)”
标签: reactjs