React 16.7中的React Hooks问题TypeError:Object(...)不是函数

问题描述 投票:7回答:3

我正在运行最新版本的React,我收到此错误enter image description here我有一个使用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版本,我做错了什么?

的package.json

"dependencies": {
    "react": "^16.7.0",
    "react-dom": "^16.7.0",
    "react-scripts": "2.1.1"
  },
reactjs react-hooks
3个回答
13
投票

UPDATE

Hook现在作为React v16.8.0的一部分发布。您可以通过升级您的反应版本来使用挂钩

有关API的更多详细信息,请参阅docs


React 16.7.0不包含钩子。

根据React blog

我们的最新版本包含React.lazy的重要性能错误修复程序。虽然没有API更改,但我们将其作为次要版本而不是补丁发布。

要在代码中运行挂钩,请参阅How to use new Feature Hooks in React?


2
投票

我试图在package.json中使用以下内容但不起作用。

"react": "16.7.0-alpha.2",
"react-dom": "16.7.0-alpha.2",

有效的是以下内容

"react": "next",
"react-dom": "next",

编辑

React版本v16.8.0里面有Hooks。用那个。


0
投票

编辑package.json

"react": "16.7.0-alpha.2",
"react-dom": "16.7.0-alpha.2",
"react-router-dom": "4.4.0-beta.6",

并运行yarn

反应释放16.7.0,但没有反应钩。如果您使用'^ read#16.7.0-alpha.2',请删除yarn.lock,它将安装[email protected]。所以你必须删除'^'并使用'[email protected]'。

© www.soinside.com 2019 - 2024. All rights reserved.