Search
 
SCRIPT & CODE EXAMPLE
 

JAVASCRIPT

How to pass data in Link of react-router-dom

// import React, {Component, Props, ReactDOM} from 'react';
// import {Route, Switch} from 'react-router'; etc etc
// this snippet has it all attached to window since its in browser
const {
  BrowserRouter,
  Switch,
  Route,
  Link,
  NavLink
} = ReactRouterDOM;

class World extends React.Component {
  constructor(props) {
    super(props);
    console.dir(props);      
    this.state = {
      fromIdeas: props.match.params.WORLD || 'unknown'
    }
  }
  render() {
    const { match, location} = this.props;
    return (
      <React.Fragment>
        <h2>{this.state.fromIdeas}</h2>
        <span>thing: 
          {location.query 
            && location.query.thing}
        </span><br/>
        <span>another1: 
        {location.query 
          && location.query.another1 
          || 'none for 2 or 3'}
        </span>
      </React.Fragment>
    );
  }
}

class Ideas extends React.Component {
  constructor(props) {
    super(props);
    console.dir(props);
    this.state = {
      fromAppItem: props.location.item,
      fromAppId: props.location.id,
      nextPage: 'world1',
      showWorld2: false
    }
  }
  render() {
    return (
      <React.Fragment>
          <li>item: {this.state.fromAppItem.okay}</li>
          <li>id: {this.state.fromAppId}</li>
          <li>
            <Link 
              to={{
                pathname: `/hello/${this.state.nextPage}`, 
                query:{thing: 'asdf', another1: 'stuff'}
              }}>
              Home 1
            </Link>
          </li>
          <li>
            <button 
              onClick={() => this.setState({
              nextPage: 'world2',
              showWorld2: true})}>
              switch  2
            </button>
          </li>
          {this.state.showWorld2 
           && 
           <li>
              <Link 
                to={{
                  pathname: `/hello/${this.state.nextPage}`, 
                  query:{thing: 'fdsa'}}} >
                Home 2
              </Link>
            </li> 
          }
        <NavLink to="/hello">Home 3</NavLink>
      </React.Fragment>
    );
  }
}


class App extends React.Component {
  render() {
    return (
      <React.Fragment>
        <Link to={{
          pathname:'/ideas/:id', 
          id: 222, 
          item: {
              okay: 123
          }}}>Ideas</Link>
        <Switch>
          <Route exact path='/ideas/:id/' component={Ideas}/>
          <Route path='/hello/:WORLD?/:thing?' component={World}/>
        </Switch>
      </React.Fragment>
    );
  }
}

ReactDOM.render((
  <BrowserRouter>
    <App />
  </BrowserRouter>
), document.getElementById('ideas'));
Comment

passing data in route react

<Route path="/" component={() => <Search name={this.props.name} />} /> 
Comment

passing data in route react

<Route path="/:name" component={Search} />
Comment

passing data in route react

<Route path="/" render={() => <Search name={this.props.name} />} /> 
Comment

passing data in route react

render={routeProps => <Search name={this.props.name} {...routeProps} />}
Comment

PREVIOUS NEXT
Code Example
Javascript :: js byte size 
Javascript :: javascript string() function 
Javascript :: position of the mouse cursor javascript 
Javascript :: How to update one mongoose db 
Javascript :: angular.toJson 
Javascript :: nodejs http 
Javascript :: javascript get last word in string 
Javascript :: building a linked list javascript 
Javascript :: Remove items from an index position 
Javascript :: includes not working 
Javascript :: js knex migration 
Javascript :: how to clone an object in javascript 
Javascript :: best node js orm for mysql 
Javascript :: ordenar un array de mayor a menor 
Javascript :: sequelize one to many 
Javascript :: javascript hoisting 
Javascript :: compare date javascript 
Javascript :: what is morgan in nodejs 
Javascript :: replace char at index of string 
Javascript :: JavaScript setTimeout js function timer 
Javascript :: react chartjs 
Javascript :: vue store access state in actions 
Javascript :: express post 
Javascript :: Children in JSX 
Javascript :: extract data from object when it match with array of ids js 
Javascript :: counter javascript 
Javascript :: add/cart shopify api 
Javascript :: discord.js buttons 
Javascript :: js get selected value by id 
Javascript :: hoisting in javascript 
ADD CONTENT
Topic
Content
Source link
Name
9+9 =