javascript - 使用 React Hooks 时 TypeError dispatcher.useState 不是函数
问题描述
我有这个组件:
import React, { useState, useEffect } from "react";
import ReactDOM from "react-dom";
function App() {
const [count, setCount] = useState(0);
useEffect(() => {
document.title = `You clicked ${count} times`;
});
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>Click me</button>
</div>
);
}
export default App;
因为我想通过在 my中安装来尝试新的React hooks提案,但是我收到了一个错误:react@16.8.1
package.json
TypeError: dispatcher.useState is not a function
2 | import ReactDOM from "react-dom";
3 |
4 | function App() {
> 5 | const [count, setCount] = useState(0);
| ^
6 | useEffect(() => {
7 | document.title = `You clicked ${count} times`;
8 | });
我做错了什么?
解决方案
可能有很多原因,大多数是由于版本不兼容或使用^
in package.json
:
1.确保react
和react-dom
版本相同
确保您还更新了react-dom
软件包,并且它与react
. 一般来说react
,react-dom
应该始终与package.json
React 团队一起更新它们的版本相同。
如果您想安装 React 16.7.0-alpha.2
,请检查您没有使用^
16.7,因为您将安装 16.7,它没有钩子。
示例package.json
:
{
...
"dependencies": {
"react": "16.8.4", // Make sure version is same as react-dom
"react-dom": "16.8.4",
...
}
}
2.与和react-test-renderer
的版本相同react
react-dom
如果您使用的是 Jest,请确保它react-test-renderer
的版本与react
and相同react-dom
:
示例package.json
:
{
...
"dependencies": {
"react": "16.8.4",
"react-dom": "16.8.4",
"react-test-renderer": "16.8.4",
...
}
}
推荐阅读
- python - 带有字典中列表的 Ansible 循环
- python - 为什么 AES 不解密我的加密文本?
- linux - 自动创建文件夹并移动文件
- javascript - 使用角度 8+ 的数据标签顶点图问题
- c++ - 如何声明作为函数参数的数组,如果它们的大小由程序开始时的用户输入确定
- fortran - Fortran 的 C_INCLUDE_PATH 等效项?
- function - 如何获取指向结构的指针,作为函数中的值给出?
- spring-boot - Kotlin 中的 Spring RequestParam 验证不起作用
- azure - ci/cd 版本中的自动化任务 - 重试失败的测试
- reactjs - 这是使用反应的 useState 钩子设置状态的正确方法吗