Привет, ребята, я впервые задаю вопрос прямо здесь, но у меня действительно заканчиваются идеи по этому поводу ...
Неперехваченная ошибка: недопустимый вызов ловушки. Хуки могут быть вызваны только внутри тела функционального компонента. Это могло произойти по одной из следующих причин: 1. Возможно, у вас несовпадающие версии React и средства визуализации (например, React DOM) 2. Возможно, вы нарушаете правила хуков 3. У вас может быть более одной копии React в в том же приложении
Для проекта с поддержкой React, работающего в сети с поддержкой React, я хочу запустить функцию инициализации в моем компоненте с помощью хука useEffect()
. Чтобы получить данные из локальной библиотеки, которую я импортировал с помощью yarn link
( эта библиотека не использует response ).
Как вы можете видеть ниже, мой хук находится в функциональном компоненте:
import React, { useEffect } from 'react';
import Premium from './Premium';
const Widget = () => {
useEffect(() => {
init();
}, []);
const init = async () => {
console.log('working');
};
return (
<Premium />
);
};
export default Widget;
Я также проверял свои версии react и react-dom, как написано здесь и у меня есть только одна копия response / react-dom и react-native.
Конечно, я проверил это двумя разными способами, как указано в официальной документации. (Через npm ls react-native
, а также через console.log(window.React1 === window.React2);
)
Вот мой пакет. json:
"scripts": {
"lint": "./node_modules/.bin/eslint .",
"test": "./node_modules/.bin/jest"
},
"dependencies": {
"@react-native-community/async-storage": "^1.10.3"
},
"devDependencies": {
"@babel/core": "7.9.6",
"@poool/eslint-config": "0.0.1-alpha.3",
"babel-eslint": "10.1.0",
"babel-jest": "26.0.1",
"enzyme": "3.11.0",
"enzyme-adapter-react-16": "1.15.2",
"eslint": "6.8.0",
"eslint-config-standard": "14.1.1",
"eslint-plugin-babel": "5.3.0",
"eslint-plugin-import": "2.20.2",
"eslint-plugin-node": "11.1.0",
"eslint-plugin-promise": "4.2.1",
"eslint-plugin-react": "7.20.0",
"eslint-plugin-standard": "4.0.1",
"jest": "26.0.1",
"jest-canvas-mock": "1.1.0",
"metro-react-native-babel-preset": "0.59.0",
"react": "16.11.0",
"react-dom": "16.11.0",
"react-native": "0.62.2",
"react-native-web": "0.12.2",
"react-test-renderer": "16.9.0"
}
}
Всем спасибо! И не стесняйтесь сказать мне, если я сделал что-то не так, для меня это впервые :)