Reactjs 为什么React认为我';我没有调用“useState”;在功能组件的主体内部;?

Reactjs 为什么React认为我';我没有调用“useState”;在功能组件的主体内部;?,reactjs,Reactjs,我在Typescript中有一个React应用程序,我试图在一个部分中使用useState钩子,结果遇到了麻烦。我已将代码简化为以下最小示例: projects loader.tsx: 从“React”导入React; 从“react dom”导入{render}; 从“/components/MoreProjectsTable”导入MoreProjectsTable; 导出常量项目=():void=>{ const moreProjectsRootEl=document.getElementB

我在Typescript中有一个React应用程序,我试图在一个部分中使用
useState
钩子,结果遇到了麻烦。我已将代码简化为以下最小示例:

projects loader.tsx

从“React”导入React;
从“react dom”导入{render};
从“/components/MoreProjectsTable”导入MoreProjectsTable;
导出常量项目=():void=>{
const moreProjectsRootEl=document.getElementById(
“响应更多项目表根”
);
渲染(,moreProjectsRootEl);
};
导出默认项目;
MoreProjectsTable.tsx

import React,{ReactElement,useState}来自“React”;
从“/MoreProjectsRow”导入MoreProjectsRow;
常量MoreProjectsTable=():ReactElement=>{
useState();
返回();
};
出口违约率稳定;
但是当我调用
projects()
时,它失败了,错误是“Hooks只能在函数组件的主体内部调用”

我从研究中了解到,这一错误有三个常见原因:

  • 违反规则
  • React和React DOM的版本不匹配
  • 同一应用程序中的多个副本
  • 关于#1,我看不出我在哪里违反了钩子的规则——在我看来,我好像是在从函数组件的顶层调用
    useState
    ,好吧

    关于#2,我验证了React和React DOM都是v16.8.1

    关于#3,我通过上面描述的方法验证了情况并非如此


    有人能给我提些别的建议吗?我是个新手,所以没有什么建议是显而易见的。

    在我发布这个问题一分钟后,一位同事发现了这个问题。这个应用程序运行在一个网页上,我没有注意到它,而是从两个不同的地方加载顶级脚本本身。显然,这是场景3的一个变体。

    我不知道答案,但我的直觉是,可能这些类型不兼容。考虑尝试<代码> const多项目稳定:Realth.Fuffic组件=()= {< /代码>