Я пытаюсь использовать библиотеку response-explode в своем приложении для реагирования (созданном с помощью yarn create-react-app
). Любое использование библиотеки приводит к сбою моего приложения во время выполнения со следующей ошибкой: Uncaught Error: Invalid hook call
в консоли.
Это происходит даже в самом простом случае со следующим index.js
файлом:
import React from 'react';
import ReactDOM from 'react-dom';
import Siargao from "react-explode/Siargao";
ReactDOM.render(
<Siargao />,
document.getElementById('root')
);
Похоже, вы используете более новую версию React, чем поддерживает react-explode
.
"dependencies": { "eases": "^1.0.8", "eslint-plugin-babel": "^5.1.0", "eslint-plugin-import": "^2.12.0", "eslint-plugin-jsx-a11y": "^6.0.3", "eslint-plugin-react": "^7.16.0", "eslint-watch": "^7.0.0", "gsap": "^3.0.4", "react": "^16.11.0", "react-dom": "^16.11.0" },
Используя React v16, он работает без проблем, но с v17 я могу воспроизвести ошибку ловушки.
Вот работающая демонстрация codeandbox с использованием React 16.14.0.
import React, { StrictMode } from "react";
import ReactDOM from "react-dom";
import Siargao from "react-explode/Siargao";
const rootElement = document.getElementById("root");
ReactDOM.render(
<StrictMode>
<Siargao repeat = {-1} size = {300} />
</StrictMode>,
rootElement
);
В проекте есть без вопросов, чтобы увеличить поддержку React. Последнее обновление репозитория было более 2 лет назад, поэтому, похоже, оно не находится в активной разработке.
Ты сможешь:
react
и react-dom
) до поддерживаемой версии ^16.11.0 и используйте.@vonClem Правильно. react
и react-dom
версии должны совпадать всегда. Извините, что не назвал это прямо. Ваше здоровье.
спасибо! Мне также пришлось понизить версию react-dom до той же версии, и теперь она работает.