我有一个正在使用挂钩useCallback的功能组件。在过去的几天里,一切都很好。一切都按预期进行。今天,我启动了应用程序,但出现了此错误:
React Hook "useCallback" is called in function "loginPage" which is neither a React function component or a custom React Hook function
这没有意义,因为它很好。为了进行调试,我只删除了页面上的所有代码,只剩下一个代码,甚至只是将useCallback模板放到了它的位置,但是仍然一样。好像它已完全从反应中删除。
我检查了我的React版本,并在react-dom中也找到了16.8.6。
有人有什么想法吗?
import React, {Fragment,useCallback } from 'react';
import { Redirect} from 'react-router-dom';
import {useDropzone} from 'react-dropzone';
const loginPage = (props) => {
const callbackFunction = useCallback(() => {
console.log("callback called");
// Do something with callbackCount ...
return true;
}, []);
}
答案 0 :(得分:2)
我看到了为什么会出现错误的三个问题。
既不是React函数组件也不是自定义的React Hook函数
loginPage
不是组件。 useCallback
是一个钩子,需要在函数组件(而不是类组件)内部或另一个钩子(名称以“ use”开头的函数)中调用。签出rules of hooks。 LoginPage
才能成为有效的React组件。