J'apprends les bases des crochets de réaction pour le moment, je me demande pourquoi ce code particulier ne fonctionne pas:
function Form() { const [input, setInput] = useState(''); let result = ''; function handleSubmit(e) { e.preventDefault(); result = input; } return ( <React.Fragment> <h1>Form practice</h1> <form> <input type="text" onChange={(e) => setInput(e.target.value)}></input> <button type="submit" onClick={handleSubmit}> submit </button> </form> <h2>{result}</h2> </React.Fragment> ); }
3 Réponses :
La manière dont un composant réactif sait que le RERENDER est que vous définissez l'état. La modification de la valeur d'une variable locale ne provoquera pas de rérendance. Donc, si vous voulez que le
code>, vous devrez tourner
résultat code> dans un morceau d'état.
simplement parce que sur chaque rendu du composant (chaque fois que l'état change, le composant rendra à nouveau) le code s'écoule à nouveau et pourquoi pas seulement rendre le p> résultat code> sera défini sur Valeur 0.
entrée code> au lieu du résultat
(code> variable? p>
function Form() {
const [input, setInput] = useState('');
function handleSubmit(e) {
// do whatever you need to do to submit the form.
}
return (
<React.Fragment>
<h1>Form practice</h1>
<form>
<input type="text" onChange={(e) => setInput(e.target.value)}></input>
<button type="submit" onClick={handleSubmit}>
submit
</button>
</form>
<h2>{input}</h2>
</React.Fragment>
);
}
Salut YE Besoin de définir le résultat avec Usestate également, de sorte que Rendendrendez u pourra voir les modifications p> p>