当前位置: 首页 > 面试题库 >

使用React Hooks时TypeError dispatcher.useState不是函数

包承望
2023-03-14
问题内容

我有这个组成部分:

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;

因为我想通过在我的上尝试新的React钩子提案,但出现了一个错误: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.确保reactreact-dom的版本相同

确保您还更新了该react-dom软件包,并且该软件包 的版本与相同react。总的来说reactreact- dom应该package.json与React团队一起更新它们的版本相同。

如果要安装React16.7.0-alpha.2,请检查您没有使用,^因为您将安装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是相同的版本reactreact-dom

如果您使用的是Jest,请确保react-test-rendererreact和的版本相同react-dom

范例package.json

{
  ...
  "dependencies": {
    "react": "16.8.4",
    "react-dom": "16.8.4",
    "react-test-renderer": "16.8.4",
    ...
  }
}


 类似资料:
  • 问题内容: 我一直在尝试使用MongoDB在nodeJS上进行W3schools教程。 当我尝试在nodeJS环境中实现此示例并通过AJAX调用调用该函数时,出现以下错误: 请在下面找到我的实现代码: 请注意,只要执行命中,就会发生错误: 另外,请注意(如果有关系的话),我已经为节点JS安装了最新的MongoDB软件包( npm install mongodb ),并且MongoDB的版本是Mon

  • 我在WordPress插件中有一个简单的jQuery脚本,它使用了如下jQuery包装器: 我从WordPress仪表板中调用这个脚本,并在jQuery框架加载后加载它。 当我检查Firebug中的页面时,我总是收到错误消息: TypeError:$不是函数 $(document).Ready(function(){ 我是否应该将脚本包装在这个函数中: 这个错误我已经犯了好几次了,不知道该怎么处理

  • 我们如何在setTimeout中使用。我在构造函数中声明了一个属性。我使用了inside它会抛出一个类似于 我试了很多,但不知道如何解决这个问题。为什么错了?请帮我解决这个问题。。

  • 问题内容: 这是node.js index.js文件的标头: 这是用于侦听Firestore更改的node.js函数: 这在package.json文件中: 当我尝试执行“ firebase deploy”命令时,这是我得到的错误: 错误:解析函数触发器时发生错误。 TypeError:admin.firestore不是函数 问题答案: 我能够重现错误并强行解决。我对此并不了解,也无法提供有关此解

  • 这是python游戏的基本战利品表。 常见的,如果滴滚动到任何数字,包括13 不寻常,如果下降滚动14通过,并在18 如果跌落在19或20滚动 即使在满足条件的情况下,该程序也会忽略罕见掉落表,而是从罕见掉落表中取出一个项目,例如掉落=20 1000金币 有人能解释一下这里的问题吗?

  • 问题内容: 当我试图在React版本15.2.0中使用这两个函数时,我在代码中发现了一个问题,尽管如此,我找到了一种解决方法,但是我想知道是否有更好的解决方案。 因此,每当我尝试运行index.html文件时,都不会显示任何内容,但是控制台会出现第一个错误: React.render不是function 。我发现发生这种情况是因为新版本的React需要使用react-dom,即 现在问题已解决,但