Maison >interface Web >js tutoriel >Raisons pour lesquelles l'historique v4 n'est pas accessible
Cet article vous présente principalement la solution au problème selon lequel l'historique de réaction-router/react-router-dom v4 n'est pas accessible. L'article le présente en détail à travers un exemple de code, qui constituera une certaine référence pour l'étude de chacun ou. travail. Valeur, amis dans le besoin viennent apprendre ensemble.
Préface
J'ai récemment mis à niveau mon React-Router Lors de l'utilisation de React-Router-dom, le sous-composant utilise this.props. l'historique est introuvable. J'ai regardé la documentation officielle et je ne l'ai pas trouvé pendant longtemps, car je saute sur la page une fois l'exécution asynchrone terminée, je dois utiliser push ou replace. Les connaissances domestiques sont copiées sur moi. J'ai copié les vôtres, ce sont toutes des conneries. Je ne peux qu'aller sur Google et
a finalement trouvé la réponse : (voir le code en un coup d'œil)
Solution
Première utilisation du routeur
import React, { Component } from 'react'; import { BrowserRouter, Route } from 'react-router-dom'; import { Provider } from 'mobx-react'; import stores from '../store/index'; import Bundle from '../components/bundle'; import Hello from 'bundle-loader?lazy!../components/hello.jsx'; // 这是按需加载,对于现在讨论的问题没有影响 const HelloAPP = () => ( <Bundle load={Hello}> {(Hello) => <Hello />} </Bundle> ); export default class App extends Component { constructor(props) { super(props); } render() { return ( <Provider { ...stores }> <BrowserRouter basename="/"> <Route path="/" component={HelloAPP}/> </BrowserRouter> </Provider> ); }; }
Puis l'historique d'utilisation des sous-composants
import React, { Component } from 'react'; // 需要这步,你要npm 这个, import PropTypes from 'prop-types'; export default class Hello extends Component { constructor(props) { super(props); } // 这一步是重点 static contextTypes = { router: PropTypes.object.isRequired }; test = () => { console.log(this.context); setTimeout(() => { this.context.router.history.push("/otherPath"); }, 1000); }; render() { return ( <p> <button onClick={this.test}>按钮</button> </p> ); }; }
Regardons ceci.contexte :
Ce qui précède est que je l'ai compilé pour tout le monde, j'espère qu'il sera utile à tout le monde à l'avenir.
Articles connexes :
Comment utiliser le filtre dans vue
Problèmes liés à l'évitement de texte dans les algorithmes front-end (tutoriel détaillé)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!