0
votes

Pourquoi Window.scrollto Action ne tirer que sur la charge de la page initiale?

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? XXX


1 commentaires

Utilisez-vous réacteur-routeur-dom ?


3 Réponses :


0
votes

Si vous passez un tableau vide sur useEffect comme deuxième argument, il ne suivra aucune variables du composant et déclencher la fonction à l'intérieur de celui-ci.

Plus d'infos dans le réagir officiel réagissant docs .


0 commentaires

0
votes

Mais si je navigue sur le composant d'ailleurs, le processus de défilement ne fonctionne pas. Pourquoi?

Parce que la navigation ne relance pas le composant.

Vous devez passer du projectile de la navigation sur le useeffect de sorte que lorsque la navigation modifie la page, elle exécute l'effet à nouveau.

Veuillez notamment en particulier la navigation que vous utilisez.


0 commentaires

1
votes

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:

const ScrollTocomp = el => el && window.scrollto (0, el.offsettop);

et ensuite

...

0 commentaires