From 696a7066546a9f20f2d39b72827fcb783de98400 Mon Sep 17 00:00:00 2001 From: Michael Jackson Date: Tue, 24 Feb 2015 17:15:14 -0800 Subject: [PATCH] [fixed] Use defaultProps of config components Fixes #814 --- modules/Configuration.js | 9 ++++++++- modules/components/Route.js | 8 +------- modules/createRoutesFromReactChildren.js | 2 +- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/modules/Configuration.js b/modules/Configuration.js index 638d1bde02..9d3ebb2a01 100644 --- a/modules/Configuration.js +++ b/modules/Configuration.js @@ -1,8 +1,15 @@ var invariant = require('react/lib/invariant'); +var RouteHandler = require('./RouteHandler'); var Configuration = { - render: function () { + getDefaultProps() { + return { + handler: RouteHandler + }; + }, + + render() { invariant( false, '%s elements are for router configuration only and should not be rendered', diff --git a/modules/components/Route.js b/modules/components/Route.js index 5faa495133..5d33b5f7ac 100644 --- a/modules/components/Route.js +++ b/modules/components/Route.js @@ -1,7 +1,7 @@ var React = require('react'); var Configuration = require('../Configuration'); var PropTypes = require('../PropTypes'); -var RouteHandler = require('./RouteHandler'); + /** * components specify components that are rendered to the page when the * URL matches a given pattern. @@ -53,12 +53,6 @@ var Route = React.createClass({ path: PropTypes.string, handler: PropTypes.func, ignoreScrollBehavior: PropTypes.bool - }, - - getDefaultProps: function(){ - return { - handler: RouteHandler - }; } }); diff --git a/modules/createRoutesFromReactChildren.js b/modules/createRoutesFromReactChildren.js index 819abb670e..14512c81eb 100644 --- a/modules/createRoutesFromReactChildren.js +++ b/modules/createRoutesFromReactChildren.js @@ -37,7 +37,7 @@ function createRouteFromReactElement(element) { return; var type = element.type; - var props = element.props; + var props = assign({}, type.defaultProps, element.props); if (type.propTypes) checkPropTypes(type.displayName, type.propTypes, props);