J'ai mis mes itinéraires comme suit:réagissent - faire un appel ajax une seule fois par composant
<Router>
<Switch>
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
<Route path="/contact" component={Contact} />
</Switch>
</Router>
Sur le composant Accueil Je veux faire un appel ajax seulement le temps de poing quand est monté.
export default class Home extends Component {
componentDidMount(){
//make ajax call only once. Do some stuff on .then()
}
}
Le problème est que si les utilisateurs commutateurs les pages entre la maison et propos, le compoment Home sera de nouveau rendre tout, donc mon appel ajax sera déclenché à nouveau.
Comment puis-je résoudre ce problème? Dois-je stocker la première extraction de données dans un magasin redux, puis utiliser l'instruction if ou y a-t-il une meilleure approche?
Vous pouvez mettre en cache les données ou renvoyer une promesse. Une fois la promesse résolue, vous aurez accès aux données. Aucune instruction IF n'est nécessaire. – Mike
cache où? sur le magasin? stockage local? Si vous le pouvez, s'il vous plaît ajouter un échantillon –
Dois-je stocker la première extraction de données sur un magasin redux, puis utiliser l'instruction if ---> si vous utilisez redux, il est préférable d'approche. –