React Hook "useState" вызывается в функции "app", которая не является ни компонентом функции React, ни пользовательской функцией React Hook - PullRequest
18 голосов
/ 25 апреля 2019

Я пытаюсь использовать ответные ловушки для простой проблемы

const[personState,setPersonSate]=  useState({DefinedObject});

со следующими зависимостями.

"dependencies": {
 "react": "^16.8.6",
 "react-dom": "^16.8.6",
 "react-scripts": "3.0.0"
}

, но все равно получаю ошибку

. / src / App.js

Строка 7:
React Hook «useState» вызывается в функции «app», которая не является ни компонентом функции React, ни пользовательской функцией React Hook response-hooks / rules-of-hooks

Строка 39:
'состояние' не определено
no-undef

Найдите ключевые слова, чтобы узнать больше о каждой ошибке.

Ответы [ 7 ]

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

Попробуйте использовать заглавные буквы 'app', как

const App = props => {...}

экспортировать приложение по умолчанию;

10 голосов
/ 25 апреля 2019

Насколько я знаю, в эту комплектацию входит линтер.И это требует, чтобы ваша составляющая начиналась с заглавной буквы.Пожалуйста, проверьте это.

Однако, как по мне, это грустно.

7 голосов
/ 08 июня 2019

Я чувствую, что мы делаем тот же курс в Удеми.

Если это так, просто наберите

с заглавной буквы

const app

К

const App

Делай так же как и для

export default app

К

export default App

У меня это хорошо работает.

4 голосов
/ 05 мая 2019

У меня была такая же проблема. Оказывается, что заглавная буква «А» в «приложении» была проблемой. Кроме того, если вы делаете экспорт: export default App;, убедитесь, что вы экспортируете то же имя "App".

2 голосов
/ 07 июля 2019

Компоненты должны начинаться с заглавных букв.Также не забудьте изменить первую букву в строке для экспорта!

1 голос
/ 31 мая 2019

У меня была такая же проблема, но не с приложением. У меня был собственный класс, но я использовал строчную букву для запуска имени функции, а также получил ошибку.

Изменена первая буква имени функции и строки экспорта в CamelCase, и ошибка исчезла.

в моем случае конечный результат был что-то вроде:

function Document() {
....
}
export default Document;

это решило мою проблему.

0 голосов
/ 25 апреля 2019

У вас есть право на импорт?

import React, { useState } from 'react';
...