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

React中使用useReducer实现密码显隐及登录加载文本异常求助

问题排查与修复方案

1. 密码显隐切换失效

问题原因

reducer处理TOGGLE_PASSWORD动作时,未对showPassword状态做取反操作,而是设置为固定值,导致仅能触发一次显示/隐藏。

修复方式

修改reducer中对应逻辑:

case "TOGGLE_PASSWORD":
  return {
    ...state,
    showPassword: !state.showPassword
  };

2. 登录加载状态文本不显示

问题原因

  • 登录函数未先派发设置加载状态的action;
  • reducer缺少处理加载状态的分支,无法更新isLoading值。

修复方式

  1. 在reducer中添加加载状态处理分支:
case "LOGIN_LOADING":
  return {
    ...state,
    isLoading: true
  };
  1. 在handleLogin函数开头触发加载状态:
const handleLogin = () => {
  dispatch({ type: "LOGIN_LOADING" });
  // 原有异步登录逻辑保持不变
};
  1. 确保按钮的条件渲染逻辑正确:
<button onClick={handleLogin}>
  {isLoading ? "Logging In" : "Login"}
</button>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 20:10:36