React Hooks issues in React 16.7 TypeError: Object(...) is not a function

React Hooks issues in React 16.7 TypeError: 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 版本但没有成功,我做错了什么?

package.json

"dependencies": {
    "react": "^16.7.0",
    "react-dom": "^16.7.0",
    "react-scripts": "2.1.1"
  },

更新

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

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


React 16.7.0 不包含钩子。

根据 React blog

Our latest release includes an important performance bugfix for React.lazy. Although there are no API changes, we’re releasing it as a minor instead of a patch.

为了在您的代码中 运行 挂钩,请参考

编辑package.json

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

和运行yarn

react发布了16.7.0,但是没有react hooks。如果您使用“^react@16.7.0-alpha.2”,删除 yarn.lock,它将安装 react@16.7.0。所以你必须删除'^'并使用'react@16.7.0-alpha.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。用那个。