web-dev-qa-db-ja.com

React React 16.7 TypeError:Object(...)is a functionではないフックの問題

Reactの最新バージョンを実行していますが、このエラーが発生しています enter image description here 私はReactここに見ることができるフック:

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)を使用しており、運がなくてアルファ版を試しましたが、何が間違っていますか?

package.json

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

[〜#〜] update [〜#〜]

React v16.8.0の一部としてフックがリリースされました。reactバージョンをアップグレードすることでフックを使用できます

APIの詳細については、docsを参照してください


React 16.7.0にはフックが含まれていません。

React blog に従って

最新リリースには、React.lazyの重要なパフォーマンスバグ修正が含まれています。 APIの変更はありませんが、パッチではなくマイナーとしてリリースしています。

コードでフックを実行するには、 Reactで新しい機能フックを使用する方法 を参照してください

13
Shubham Khatri

Package.jsonで以下を使用しようとしましたが、動作しません。

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

働いたのは次の

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

編集

Reactバージョンv16.8.0には内部にフックがあります。それを使用します。

2
Petros Kyriakou

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をリリースしましたが、反応フックはありません。 '^[email protected]'を使用する場合、yarn.lockを削除すると、react @ 16.7.0がインストールされます。したがって、「^」を削除し、「[email protected]」を使用する必要があります。

0
fuhaiwei