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

React 18报错:Hooks只能在函数组件内部调用问题排查

解决React Hook调用无效的问题

你的问题出在组件导出的方式上:

你当前写的是:

export default DetailTitle();

这里你直接调用了DetailTitle函数,导出的是函数执行后返回的JSX元素,而不是组件函数本身。当你直接执行函数时,里面的useParams钩子是在React组件渲染流程之外被调用的,这就违反了Hook只能在函数组件体内部调用的规则,所以触发了警告。

修正方法很简单,只需要导出组件函数本身,不要加括号调用:

import { useParams } from 'react-router-dom';

const DetailTitle = () => {
    const params = useParams();
    console.log(params);
    return (
        <div className="wrapper">
            <div className="container">
                <h2>DetailTitle</h2>
            </div>
        </div>
    );
};

export default DetailTitle;

这样React就能正确识别这是一个函数组件,在组件渲染时会自动执行它,此时useParams就在正确的组件上下文里调用,不会再触发警告。

内容的提问来源于stack exchange,提问作者Anh Vũ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 15:54:18