useEffect Clean-Up Function Executes After Component is Removed
Personne n'a encore pris cette issue.
- Langage dominant
- JavaScript
- Étoiles
- 11.8k
- Forks
- 7.9k
- Merge moyen
- 1 j 11 h
- PR mergées (30 j)
- 11
Description
This behavior has changes in React version 17.0.x.
Clean-up function should execute when the component unmounts, and I've noticed in React v.17 by the time cleanup function executes, React referenced elements are no longer available.
Working example with React v.16
Example with React v.17
Notice unmountSuccessful logs before divRef in React v.17 example.
This is the only relevant change I noticed from the changelog.
If the behavior of useEffect clean-up has changed it should be reflected on the docs.
Code Snippet:
const App = () => {
const divRef = React.useRef(null);
React.useEffect(() => {
console.log('divRef ::', divRef.current)
return function cleanUp() {
console.log('[cleanUp] divRef ::', divRef.current)
}
}, [])
return (
<div ref={divRef}>
Open Browser's Console For Output
</div>
)
}
ReactDOM.render(
<App />,
document.getElementById('root')
);
const unmountApp = () => {
console.log('unmounting root...')
const node = document.getElementById('root');
const unmountSuccessful = ReactDOM.unmountComponentAtNode(node);
console.log('unmountSuccessful ::', unmountSuccessful)
};
window.setTimeout(unmountApp, 1500);
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par la documentation de React useEffect liée dans l’issue et comparez sa formulation concernant le nettoyage avec le comportement de React 17 montré dans les deux exemples CodePen. Lisez la pull request du changelog liée concernant le changement pertinent. C’est terminé lorsque la documentation explique précisément quand le nettoyage s’exécute et si les éléments référencés restent disponibles.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- javascript, react
- Domaine
- documentation
- Type d'issue
- Documentation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 42/100