donc ce qui est plus ou moins le codecondition de course avec l'événement de charge en Javascript
Désolé pour la syntaxe, je dactylographié de mon téléphone
export default class Main extends React.Component {
componentDidMount() {
axios.get('/user?ID=12345')
.then(function (response) {
if (response){
document.addEventListener('load',() => {/* remove spinner using jquery */});
} else { /* redirect to somewhere else */}
})
}
render() {
return (
<SomeComponent />
);
}
}
je addEventListener avec React parce que je ne pouvais pas trouver un autre moyen de lier l'enlèvement de la roue de chargement à l'événement de chargement. Le problème est qu'il y a une course ici, pour les stations de réseau lentes ou celles de CPU rapides, l'événement de chargement peut être lancé longtemps avant que la requête ne soit résolue, ce qui entraîne le maintien du spinner de chargement.
Existe-t-il un moyen de vérifier si l'événement de chargement a déjà été déclenché?
Si je peux le faire, je serai en mesure de le vérifier après avoir ajouté l'écouteur d'événement et au cas où il a déjà été lancé, je vais supprimer le spinner manuellement.
(qui déclenche la méthode render dans laquelle vous pouvez afficher ou non le spinner). Je vous recommande de lire [Réflexion dans Réagir] (https://reactjs.org/docs/thinking-in-react.html) – 3Dos
setState re-rend le composant, je voudrais l'éviter. Je pense qu'il est beaucoup plus simple de régler l'affichage du spinner de chargement sur aucun. –
Mais ce n'est pas le problème ici –