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;