Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3. import {Router, Route, Link, IndexLink, IndexRoute, hashHistory} from 'react-router';
  4.  
  5. const users = [
  6.     {id: 1, name: 'Marcin'},
  7.     {id: 2, name: 'Tomasz'},
  8.     {id: 3, name: 'Ania'},
  9.     {id: 5, name: 'Klaudia'}
  10. ];
  11.  
  12. class Main extends React.Component {
  13.     render() {
  14.         return <h1>Main</h1>;
  15.     }
  16. }
  17.  
  18. class Contact extends React.Component {
  19.     render() {
  20.         return <h1>Contact us at contact@example.com</h1>;
  21.     }
  22. }
  23.  
  24. class NotFound extends React.Component {
  25.     render() {
  26.         return <h1>404, <Link to="/">wroc do strony glownej</Link></h1>
  27.     }
  28. }
  29.  
  30. class Template extends React.Component {
  31.     render() {
  32.         console.log(this.props.route.users, 'Template');
  33.         const style = {
  34.             backgroundColor: "red",
  35.             border: "4px solid green"
  36.         };
  37.  
  38.         const menu = this.props.route.users.map(u => {
  39.             return <li key={u.id}>
  40.                 <IndexLink activeStyle={style} to={"/users/"+u.id}>{u.name}</IndexLink>
  41.             </li>
  42.         })
  43.  
  44.         return (<div>
  45.                 <h1>App</h1>
  46.                 <nav>
  47.                     <ul>
  48.                         <li><IndexLink activeStyle={ style } to="/">strona głowna</IndexLink></li>
  49.                         <li><IndexLink activeStyle={ style } to="/contact">kontakt</IndexLink></li>
  50.                         {menu}
  51.                     </ul>
  52.                 </nav>
  53.                 {this.props.children}
  54.             </div>)
  55.     }
  56. }
  57.  
  58. class UserInfo extends React.Component {
  59.     render() {
  60.         return <p>ID: {this.props.params.userId}</p>
  61.     }
  62. }
  63.  
  64. class App extends React.Component {
  65.     render() {
  66.         console.log(this.props.users);
  67.         return <Router history={hashHistory}>
  68.             <Route path="/" component={Template} users={this.props.users}>
  69.                 <IndexRoute component={Main}/>
  70.                 <Route path="/contact" component={Contact}/>
  71.                 <Route path="/users/:userId" component={UserInfo}/>
  72.                 <Route path="*" component={NotFound}/>
  73.             </Route>
  74.         </Router>;
  75.     }
  76. }
  77.  
  78. document.addEventListener('DOMContentLoaded', function(){
  79.     ReactDOM.render(
  80.         <App users={users}/>,
  81.         document.getElementById('app')
  82.     );
  83. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement