web-dev-qa-db-fra.com

Problèmes de réaction avec les crochets dans React 16.7 TypeError: Object (...) n'est pas une fonction

J'utilise la dernière version de React et j'obtiens cette erreur  enter image description here J'ai un composant simple qui utilise des crochets à réaction comme vous pouvez le voir ici: 

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;

Tout ce que j'ai trouvé à ce sujet sur le débordement de la pile dit de mettre à niveau les bibliothèques, mais j'ai la dernière version (16.7.0) et j'ai essayé la version alpha sans succès.

package.json

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

METTRE &AGRAVE; JOUR

Les crochets sont maintenant libérés dans React v16.8.0. Vous pouvez utiliser les hooks en mettant à jour votre version de react

Voir docs pour plus de détails sur les API


React 16.7.0 Ne contient pas de crochets. 

Selon le blog de React

Notre dernière version inclut un important correctif de performance pour React.lazy. Bien qu’il n’y ait pas de changement d’API, nous le publions en tant que mineur au lieu d'un patch.

Pour exécuter les hooks dans votre code, référez-vous Comment utiliser les nouveaux hooks de fonctionnalité dans React

6
Shubham Khatri

J'ai essayé d'utiliser ce qui suit dans package.json mais je ne travaille pas.

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

Ce qui a fonctionné est le suivant

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

MODIFIER

React version v16.8.0 contient des crochets. Utiliser ça.

1
Petros Kyriakou

modifier package.json

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

et lancez yarn

La réaction a publié 16.7.0, mais il n'y a pas de crochets de réaction. Si vous utilisez '^[email protected]', supprimez yarn.lock, il installera [email protected]. Donc, vous devez supprimer '^' et utiliser '[email protected]'.

0
fuhaiwei