Просто для уточнения ответа @ rista404, включая дубликаты версий из react
(и, возможно, react-dom
), вы получите ту же ошибку в зависимости от того, где вы используете свои хуки.Вот два примера ...
- Внешняя зависимость включает другую версию
react
в свой dependencies
, вероятно, по ошибке, поскольку react
обычно должна быть зависимостью от равноправного узла.Если npm
автоматически не дедуплирует эту версию с вашей локальной версией, вы можете увидеть эту ошибку.Это то, на что ссылался @ rista404. - Вы
npm link
пакет, включающий react
в devDependencies
или dependencies
.Теперь для модулей в этом пакете вы можете увидеть ошибки, если они извлекают другую версию react
из своего локального каталога node_modules
, а не из родительского проекта.
Последний можно исправитьпри связывании с webpack
с использованием resolve.alias
, например, так ...
resolve: {
alias: {
'react': path.resolve(__dirname, 'node_modules/react'),
'react-dom': path.resolve(__dirname, 'node_modules/react-dom')
}
}
Это обеспечит постоянное извлечение react
из каталога node_modules
родительского проекта.