Maison > interface Web > js tutoriel > le corps du texte

Comment puis-je transmettre des accessoires aux composants du gestionnaire dans React Router ?

Patricia Arquette
Libérer: 2024-10-23 18:44:31
original
537 Les gens l'ont consulté

How Can I Pass Props to Handler Components in React Router?

Passer des accessoires aux composants du gestionnaire dans React Router

Dans React Router, passer des accessoires aux composants du gestionnaire est une exigence courante. Considérez la structure suivante :

var Dashboard = require('./Dashboard');
var Comments = require('./Comments');

var Index = React.createClass({
  render: function () {
    return (
        <div>
            <header>Some header</header>
            <RouteHandler />
        </div>
    );
  }
});

var routes = (
  <Route path="/" handler={Index}>
    <Route path="comments" handler={Comments}/>
    <DefaultRoute handler={Dashboard}/>
  </Route>
);

ReactRouter.run(routes, function (Handler) {
  React.render(<Handler/>, document.body);
});
Copier après la connexion

Transmission directe des accessoires

Traditionnellement, vous transmettriez les accessoires directement au composant Commentaires comme ceci :

<Comments myprop="value" />
Copier après la connexion

Passer des accessoires via React Router

Cependant, dans React Router, les accessoires doivent être transmis via le composant prop de la Route. Il existe deux façons de procéder :

1. Utilisation d'un composant Wrapper

Créez un composant wrapper qui s'enroule autour du composant gestionnaire :

var RoutedComments = React.createClass({
  render: function () {
    return <Comments {...this.props} myprop="value" />;
  }
});
Copier après la connexion

Ensuite, utilisez le composant RoutedComments au lieu du composant Comments dans la route :

<Route path="comments" handler={RoutedComments}/>
Copier après la connexion

2. Utilisation de composants de classe avec des propriétés de route

Définissez un composant de classe qui s'étend de React.Component et utilisez le prop du composant :

class Index extends React.Component {
  constructor(props) {
    super(props);
  }
  render() {
    return (
      <h1>
        Index - {this.props.route.foo}
      </h1>
    );
  }
}

var routes = (
  <Route path="/" foo="bar" component={Index}/>
);
Copier après la connexion

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!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal