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

TypeScript提示'this'隐式为any类型 React路由跳转报错如何解决

问题根本原因

你当前使用的是React函数组件,函数组件中不存在this对象,this.props是类组件的专属写法,此处属于语法使用错误。即使关闭TS隐式this校验,运行时也会因为this为undefined导致调用props失败,完全无法实现功能,不属于类型校验的问题。

解决方案

根据你使用的React Router版本选择对应方案即可:

方案1:React Router v5 版本

使用useHistory路由Hook获取history实例:

  1. 导入路由Hook
import { useHistory } from "react-router-dom";
  1. 组件内调用Hook获取实例
    在Login组件顶层添加代码:
const history = useHistory();
  1. 替换报错行
    把this.props.history.push("/home");替换为:
history.push("/home");

方案2:React Router v6 版本

v6版本移除了useHistory,改用useNavigate实现跳转:

  1. 导入路由Hook
import { useNavigate } from "react-router-dom";
  1. 组件内调用Hook获取实例
    在Login组件顶层添加代码:
const navigate = useNavigate();
  1. 替换报错行
    把this.props.history.push("/home");替换为:
navigate("/home");
注意事项

确保Login组件处于Router组件的上下文作用域内,否则路由Hook会调用失败。如果组件没有被Route直接包裹,可通过withRouter高阶组件(v5)或在父级路由中渲染组件保证上下文可用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 16:57:04