Wenn Sie also einen gemeinsamen Header unter Ihren Routen angezeigt werden müssen, gibt es ein paar Möglichkeiten, ist, es zu tun. Zum einen können Sie Ihre Kopfzeile in einer eigenen Komponente definieren. Etwas Einfaches Beispiel:
import React from 'react';
export default React.createClass({
render() {
return <div className='header'><h1>{this.props.title}</h1></div>;
}
}
Dann in Ihrem Hause Komponente, App Komponente usw. Einfach ausgedrückt in Ihrem render(), nachdem es an der Spitze jeder Datei importieren.
Die andere Option ist Ihre eigene Art von Container-Komponente zu erstellen, noch die Header-Komponente wir oben definiert:
import React from 'react';
export default React.createClass({
render() {
return (
<div className='container'>
<Header title={this.props.title} />
{this.props.children}
</div>
);
}
}
Dann, wo Sie Ihre Routen erklären:
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App.jsx';
import Home from './Home.jsx';
import Container from './Container.jsx';
import { Router, Route, Link, browserHistory, IndexRoute } from 'react-router';
ReactDOM.render((
<Router history = {browserHistory}>
<Route path = "/home" component = {<Container title='home'><Home /></Container>} />
<Route path = "/" component = {<Container title='app'><App /></Container>}>
</Route>
</Router>
));
ich habe Zugegeben nicht diese zweite Option ausprobiert. Möglicherweise müssen Sie den Router als Parameter von der Containerkomponente an die Verwendung der untergeordneten Komponente weitergeben, wenn Sie beispielsweise router.transitionTo('/path')
ausführen möchten.
Es ist nur eine Option, wenn Sie nicht überall wiederholen möchten.
header.jsx:
class Header extends Component {
render() {
return (<div>Your header</div>);
}
}
erster page.jsx:
class FirstPage extends Component {
render() {
return (<div>First page body</div>);
}
}
zweit page.jsx
class SecondPage extends Component {
render() {
return (<div>Second page body</div>);
}
}
App
Sie sollten den Code nach, was es ist, zu beheben versuchen. Veröffentlichen Sie also die allgemeine Kopfkomponente, wie sie in Ihrer Container-/Top-Level-Komponente enthalten ist. Und wie machst du Routing? – agmcleod
Entschuldigung, nicht beheben. noch zu tun. – sibi