reactjs - 将反应版本从 16.13.1 更新到 17.0.1 后出现无效的挂钩调用错误
问题描述
我的 react-web 应用程序出现以下错误。
*错误:无效的挂钩调用。钩子只能在函数组件的主体内部调用。这可能由于以下原因之一而发生:
- 你可能有不匹配的 React 版本和渲染器(例如 React DOM)
- 您可能违反了 Hooks 规则
- 您可能在同一个应用程序中拥有多个 React 副本 有关如何调试和修复此问题的提示,请参阅https://reactjs.org/link/invalid-hook-call。*。
这是我的代码:
import React from 'react';
import { useTranslation } from 'react-i18next';
import { Button, Dropdown } from 'tabler-react';
import regeneratorRuntime from 'regenerator-runtime';
const LanguageSelector = () => {
const {t, i18n} = useTranslation();
const clicked = (event) => {
i18n.changeLanguage(event.target.value);
};
const clickedEn = () => {
i18n.changeLanguage("en");
};
const clickedTr = () => {
i18n.changeLanguage("tr");
};
return (
<Button.List align={"right"}>
<Dropdown
outline
type="button"
size="sm"
toggle={false}
color="primary"
arrow
icon="globe"
triggerContent={t('selectLanguage')}
itemsObject={[
{
value: "English",
onClick: clickedEn
},
{isDivider: true},
{
value: "Türkçe",
onClick: clickedTr
},
]}
/>
</Button.List>
);
};
export default LanguageSelector;
这是 package.json 文件:
{
"name": "smt",
"version": "1.0.0",
"main": "dist/index.js",
"module": "dist/index.es.js",
"jsnext:main": "dist/index.es.js",
"engines": {
"node": ">=8",
"npm": ">=5"
},
"peerDependencies": {
"react": "^15.0.0 || ^16.12.0",
"react-dom": "^15.0.0 || ^16.12.0"
},
"dependencies": {
"js-file-download": "^0.4.8",
"konva": "^7.2.0",
"moment": "^2.24.0",
"react-image-lightbox": "^5.1.1",
"react-konva": "^17.0.0-0",
"react-router-dom": "^5.1.2",
}
}
解决方案
推荐阅读
- sql-server - MS SQL Server 管理复制数据库计划
- visual-studio - 如何在 Windows 中构建 glpk 时修复错误
- ios - SwiftUI:不要刷新自定义视图 MacOS 应用程序
- angular - 无法安装 @ionic-enterprise/couchbase-lite
- kdb - KDB+ 中具有多个值列的数据透视表
- angular - MatTableDatasource 的自定义排序数据源:首先选中复选框
- javascript - 当计时器分钟达到某个目标时,我如何更改页面的背景颜色?
- c# - System.Windows.Media.Imaging.WriteableBitmap 和 System.Windows.Media.PixelFormats 的 UWP 兼容包
- reactjs - 如何在 react-navigation v5 中同时渲染 Tab 导航和抽屉导航
- javascript - p表中的默认排序列和排序图标