Skip to content

Latest commit

 

History

History
71 lines (61 loc) · 1.64 KB

README.md

File metadata and controls

71 lines (61 loc) · 1.64 KB

Routing

Install react-router

npm install react-router-dom --save-dev
import React, { Component } from 'react';
import { BrowserRouter as Router, Route, Link, Switch } from "react-router-dom";
import './App.css';
import {Header, Sample} from './Header';
import { CollegesList } from './CollegesList';
import CollegeDetail from './CollegeDetail';

class App extends Component {

  constructor(props){
    super(props);
    this.state = {
      collegesList: null
    };
  }

componentDidMount() {
  var self = this;
  console.log(this);
  fetch("http://localhost:8000/api/v1/colleges/")
    .then(response => response.json())
    .then(responseJson => {
      this.setState({ collegesList: responseJson });
    })
    .catch(e => {
      console.log(e);
      console.log("Error occured in second catch");
    });
}

  render(){
      const { title } = this.props;
      const { count } = this.state;

      return (
        <React.Fragment>
          <Header title="Mentor App" isLoggedIn={true}/>

          <Router>
            <React.Fragment>
              <Switch >
              <Route exact path="/">
                <CollegesList collegesList={this.state.collegesList}/>
              </Route>

              <Route
                exact
                path="/college/:id"
                component={
                  (props)=>
                  <CollegeDetail college={this.state.collegesList ?this.state.collegesList[props.match.params.id - 1-] : {}} {...props}/>
                }>

              </Route>
              </Switch>
            </React.Fragment>
          </Router>
        </React.Fragment>
      );
  }
}

export default App;