Я установил стартовое приложение 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.