ReactJS useCallback不是React函数吗?

时间:2019-04-26 05:14:43

标签: reactjs react-hooks

我有一个正在使用挂钩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;
    }, []);

  }

1 个答案:

答案 0 :(得分:2)

我看到了为什么会出现错误的三个问题。

  

既不是React函数组件也不是自定义的React Hook函数

  1. loginPage不是组件。 useCallback是一个钩子,需要在函数组件(而不是类组件)内部或另一个钩子(名称以“ use”开头的函数)中调用。签出rules of hooks
  2. 组件名称也应该以大写字母开头,因此它必须为LoginPage才能成为有效的React组件。
  3. 您没有从组件返回任何东西。
相关问题