J'utilise la dernière version de React et j'obtiens cette erreur 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"
},
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
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.
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]'.