reactjs - React 16.7 TypeError 中的 React Hooks 问题:Object(...) is not a function
问题描述
我正在运行最新版本的 React 并且收到此错误 我有一个使用 React Hooks 的简单组件,如您在此处看到的:
import React, { useState } from "react";
const AppFunction = () => {
const [count, setCount] = useState(0);
const incrementCount = () => {
setCount(count + 1);
};
return (
<div>
<h1>Count:{count} </h1>
<button onClick={incrementCount}>Click Me</button>
</div>
);
};
export default AppFunction;
我在堆栈溢出时发现的所有内容都说要升级库,但我有最新版本(16.7.0)并且尝试了 alpha 版本但没有运气,我做错了什么?
包.json
"dependencies": {
"react": "^16.7.0",
"react-dom": "^16.7.0",
"react-scripts": "2.1.1"
},
解决方案
更新
Hooks 现在作为 React v16.8.0 的一部分发布。你可以通过升级你的反应版本来使用钩子
有关API 的更多详细信息,请参阅文档
React 16.7.0 不包含钩子。
根据React 博客
我们的最新版本包括 React.lazy 的重要性能错误修复。虽然没有 API 更改,但我们将其作为次要版本而不是补丁发布。
为了在您的代码中运行钩子,请参阅如何在 React 中使用新的功能钩子?
推荐阅读
- postgresql - 无法使用 Golang Gorm 连接到 RDS Postgres
- javascript - 下拉项目的日期显示为 NAN,但单元格的日期显示为 NAN
- c# - 如何在另一个类中的属性更改后调用方法?
- android-studio - Android Studio 预览未显示 ActionBar
- ansible - Molecule 是如何进行角色查找的
- gcc - 我怎样才能让LD始终将入口点放在-Ttext的位置?
- dart - 使用 badCertificateCallback - http-package 接受自签名证书
- node.js - 如何在Nodejs中检查输入是Linux shell命令还是普通文本消息?
- node.js - 纱线抛出错误:找不到模块“decamelize”
- c# - 用于分散收集器收件人的控制台应用程序或 Web api?