Heim >Web-Frontend >js-Tutorial >Wie kann ich Requisiten an Handlerkomponenten im React Router übergeben?

Wie kann ich Requisiten an Handlerkomponenten im React Router übergeben?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-23 18:44:31568Durchsuche

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

Übergabe von Requisiten an Handler-Komponenten in React Router

In React Router ist die Übergabe von Requisiten an Handler-Komponenten eine häufige Anforderung. Betrachten Sie die folgende Struktur:

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);
});

Requisiten direkt weitergeben

Traditionell würden Sie Requisiten wie folgt direkt an die Kommentarkomponente übergeben:

<Comments myprop="value" />

Übergabe von Requisiten über React Router

In React Router müssen Requisiten jedoch über die Komponenten-Requisite der Route weitergeleitet werden. Dafür gibt es zwei Möglichkeiten:

1. Verwenden einer Wrapper-Komponente

Erstellen Sie eine Wrapper-Komponente, die die Handler-Komponente umschließt:

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

Verwenden Sie dann die RoutedComments-Komponente anstelle der Comments-Komponente in der Route:

<Route path="comments" handler={RoutedComments}/>

2. Verwenden von Klassenkomponenten mit Routeneigenschaften

Definieren Sie eine Klassenkomponente, die von React.Component ausgeht, und verwenden Sie die Komponentenstütze:

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}/>
);

Das obige ist der detaillierte Inhalt vonWie kann ich Requisiten an Handlerkomponenten im React Router übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn