Donc, je veux une action de défilement pour avoir lieu à chaque fois que mon composant est appelé, ce qu'il fait si je charge directement le composant. Mais si je navigue sur le composant d'ailleurs, le processus de défilement ne fonctionne pas. Pourquoi?
3 Réponses :
Si vous passez un tableau vide sur Plus d'infos dans le réagir officiel réagissant docs . p> useEffect code> comme deuxième argument, il ne suivra aucune variables du composant et déclencher la fonction à l'intérieur de celui-ci. P>
Mais si je navigue sur le composant d'ailleurs, le processus de défilement ne fonctionne pas. Pourquoi? P> blockQuote>
Parce que la navigation ne relance pas le composant. p>
Vous devez passer du
projectile code> de la navigation sur leuseeffect code> de sorte que lorsque la navigation modifie la page, elle exécute l'effet à nouveau. P>Veuillez notamment en particulier la navigation que vous utilisez. P>
C'est probablement une condition de course, l'effet est appelé l'initialisation des composants, la REF est définie plus tard. Une meilleure approche serait: p>
et ensuite p>
const ScrollTocomp = el => el && window.scrollto (0, el.offsettop); code> p>
Utilisez-vous
réacteur-routeur-dom code>?