/ app / js / components / PropsRoute.js
PropsRoute.js
 1  import React, { Component } from 'react';
 2  import { Route } from 'react-router-dom';
 3  
 4  const _renderMergedProps = (component, ...rest) => {
 5    const finalProps = Object.assign({}, ...rest);
 6    return (
 7      React.createElement(component, finalProps)
 8    );
 9  }
10  
11  /**
12   * Renders a @external "Route" with props passed to the route
13   * and available to all components mounted in that route
14   * 
15   * @param {React.Component} component - component to render for the route
16   * @param {params} ...rest - props to pass to component when it's mounted
17   */
18  const PropsRoute = ({ component, ...rest }) => {
19    return (
20      <Route {...rest} render={routeProps => {
21        return _renderMergedProps(component, routeProps, rest);
22      }} />
23    );
24  }
25  
26  export default PropsRoute;