Maison > Questions et réponses > le corps du texte
P粉7295188062023-08-18 14:21:45
Définissez l'état pour le hook lui-même, pas pour les fonctions à l'intérieur du hook. Par exemple :
export const useHero = (initialHero) => { const [hero, setHero] = useState(initialHero); const UpdateHero = (newHero) => { setHero(newHero); }; return { UpdateHero }; }
Veuillez également noter la différence entre initialHero
和newHero
ici. Le premier est utilisé pour initialiser la première valeur d'état lorsque le hook est appelé pour la première fois :
const { UpdateHero } = useHero(someValueHere);
Et ce dernier sert à le mettre à jour à une nouvelle valeur lors d'un appel UpdateHero
:
<button class="active" onClick={() => UpdateHero(hero)}>
Veuillez noter que dans le code ci-dessus, vous n'appelez pas le hook directement dans le balisage. Les hooks sont appelés au début du composant (et les mêmes hooks sont appelés dans le même ordre à chaque rendu). Les données et/ou fonctions renvoyées par le hook peuvent ensuite être utilisées ultérieurement.
Quelques remarques :
hero
. Je suppose que le hook devrait également renvoyer cette valeur pour pouvoir être utilisé. UpdateHero
在这里是多余的,您可以直接返回setHero
C'est redondant ici, vous pouvez simplement renvoyer setHero
. Je suppose que ces deux questions sont dues au fait qu'il ne s'agit que d'un exemple très simplifié de ce que vous essayez de faire, le crochet réel est plus complexe que cela. Cependant, si ces problèmes ne sont pas pris en compte, le crochet ci-dessus peut être simplifié comme suit :
export const useHero = (initialHero) => { const [hero, UpdateHero] = useState(initialHero); return { hero, UpdateHero }; }