You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React useState布尔切换状态追加而非替换问题如何解决

问题根因
  • 未点赞状态的红色图标无任何条件渲染逻辑,无论thumb状态是true还是false都会固定显示
  • 只有已点赞状态的绿色图标做了thumb为真时才显示的判断,因此点击切换状态后就会出现两个图标并存的问题
修复方案

直接通过三元表达式给同一个图标绑定不同样式即可,无需声明两个图标组件,修改后的Liker组件代码如下:

const Liker = () => {
  const [thumb, setThumbUp] = useState(false);

  return (
    <>
      <button style={{border: 'none', backgroundColor: 'transparent'}} onClick={() => setThumbUp(!thumb)}>
        <ThumbUpIcon style={thumb ? ThumbUpButton : ThumbStyle} />
      </button>
    </>
  );
}

内容的提问来源于stack exchange,提问作者Markohan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 16:24:03