Использование Hooks Breaks Gatsby / React Starter App - PullRequest
0 голосов
/ 08 января 2020

Я установил стартовое приложение Gatsby здесь . Работает нормально, пока я не добавлю ловушку (т.е. заменим индекс. js на код ниже):

import React, { useState } from 'react';

export default () => {
  const [greeting, setGreeting] = useState('hi'); // Adding this line breaks it - this is the only change I make
  return (
    <div>Whatever</div>
  );
}

Ошибка:

Ошибка: неверный вызов ловушки , Хуки могут быть вызваны только внутри тела функционального компонента. Это может произойти по одной из следующих причин: 1. У вас могут быть несовпадающие версии React и средства визуализации (например, React DOM). 2. Возможно, вы нарушаете правила хуков. 3. Возможно, у вас есть несколько копий React в то же приложение

Я подтвердил, что ни одно из общих решений не применимо.

Некоторая информация о моей системе:

node -v // v12.14.1
npm -v // 6.13.4

npm list -g --depth=0                                                               
`-- gatsby-cli@2.8.23

npm list react
+-- gatsby@2.18.12
| `-- gatsby-cli@2.8.19
|   `-- react@16.12.0  deduped
`-- react@16.12.0

npm list --depth=0                                                                  gatsby-starter-hello-world@0.1.0 C:\code\my-hello-world-starter
+-- gatsby@2.18.12
+-- prettier@1.19.1
+-- react@16.12.0
`-- react-dom@16.12.0

npm ERR! peer dep missing: typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta, required by tsutils@3.17.1
npm ERR! peer dep missing: typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta, required by tsutils@3.17.1

Пожалуйста помочь - я в растерянности Я видел другую статью о windows чувствительности к регистру пути, но, похоже, она не относится к powershell и должна была быть исправлена ​​в этих версиях.

Я пробовал:

rm -r node_modules
rm package-lock.json
npm cache clean -f
npm i

Я также удалил все глобальные npm пакеты, кроме gatsby.

1 Ответ

2 голосов
/ 08 января 2020

Это была красная сельдь. То, что действительно сломало приложение, работало gatsby develop с:

c/code/myapp вместо c:/Code/myapp. Обратите внимание, что Code написано с заглавной буквы в «правильном» примере. В проблемах Github сказано, что это было исправлено в нескольких версиях go, но это не так. Надеюсь, это поможет кому-то еще.

https://github.com/facebook/create-react-app/issues/3609

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...