我正在使用react-testing-library,并且收到“无效的钩子调用。只能在函数组件主体内部调用钩子。”消息。
测试一直有效,直到我将钩子提取到单独的库中为止,该库包含在(package.json)中:
devDependencies: {
"react-hooks": "../react-hooks",
}
我认为有趣的是,它在单独的库中调用钩子时抛出此错误(第25行),而不是在同一库中的调用钩子中抛出此错误(第24行):
23 | export default function Button({ id, onClick, children, ...props }: ButtonProps) {
24 | const theme = useThemeContext();
> 25 | const { isMouseOver, onMouseOver, onMouseOut } = useMouseOver();
如果我发布库并使用发布的版本,则可以正常工作。如果我改用yarn link也不能正常工作。
我还检查了是否有多个React实例,而且似乎没有:
$ yarn list react
yarn list v1.22.0
warning package.json: No license field
└─ react@16.13.1
Done in 1.05s.
我将两个库与宗地(tsdx)捆绑在一起。他们没有捆绑React。
有什么线索吗?