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

React TypeScript catch块内无法触发state状态更新如何解决

错误原因
  • Promise的catch方法必须接收一个回调函数作为入参,你当前代码直接向catch传入了对象字面量{ setError(false); },完全不符合语法要求,所以触发类型匹配报错。
  • 额外逻辑问题:你当前在catch块内写的是setError(false),和你需要的「请求出错时更新error状态」的需求逻辑相反,就算语法修正后也不能实现预期功能。
修复后的代码
const [error, setError] = useState<any>(false);

useEffect(() => {
    axios.get(`${backendUrl}/${filteredlocation}`)
      .then(res => {
        setData((state:any) => [...state, res?.data]);
        // 请求成功时重置错误状态
        setError(false);
      }).catch((err) => {
        // 请求出错时更新错误状态,可根据需要存储错误对象或仅标记错误状态
        setError(true);
        // 若要存储错误详情可写为 setError(err)
      });
  }, []);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:24:08