ReactJS useCallback не является функцией реагировать? - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть функциональный компонент, который использует хук useCallback. Последние несколько дней все было хорошо. Все работало как надо. Сегодня я запускаю приложение и у меня появляется эта ошибка:

React Hook "useCallback" is called in function "loginPage" which is neither a React function component or a custom React Hook function

Это не имеет смысла, потому что все было хорошо. Для отладки я просто удалил весь код на странице, кроме одного, и даже просто поместил шаблон useCallback на его место, но все тот же. Это как если бы оно было удалено из реакции полностью.

Я проверил свою версию реакции и обнаружил, что 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 Ответ

2 голосов
/ 26 апреля 2019

Я вижу три проблемы, по которым произошла ошибка.

, которая не является ни компонентом функции React, ни пользовательской функцией React Hook

  1. loginPageне компонент.useCallback является хуком, и его нужно вызывать внутри компонента функции (не компонента класса) или в другом хуке (функция, имя которой начинается с «use»).Ознакомьтесь с правилами хуков .
  2. А также имя компонента должно начинаться с заглавной буквы, поэтому оно должно быть LoginPage, чтобы оно было действительным компонентом React.
  3. Вы ничего не возвращаете из своего компонента.
...