Skip to content

Commit e128ac5

Browse files
committed
Store routes/namedRoutes as instance properties instead of state
1 parent cf6971a commit e128ac5

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

modules/mixins/RouteContext.js

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -119,34 +119,37 @@ function processRoutes(children, container, namedRoutes) {
119119
*/
120120
var RouteContext = {
121121

122-
getInitialState: function () {
123-
var namedRoutes = {};
124-
125-
return {
126-
routes: processRoutes(this.props.children, this, namedRoutes),
127-
namedRoutes: namedRoutes
128-
};
122+
_processRoutes: function () {
123+
this._namedRoutes = {};
124+
this._routes = processRoutes(this.props.children, this, this._namedRoutes);
129125
},
130126

131127
/**
132128
* Returns an array of <Route>s in this container.
133129
*/
134130
getRoutes: function () {
135-
return this.state.routes;
131+
if (this._routes == null)
132+
this._processRoutes();
133+
134+
return this._routes;
136135
},
137136

138137
/**
139138
* Returns a hash { name: route } of all named <Route>s in this container.
140139
*/
141140
getNamedRoutes: function () {
142-
return this.state.namedRoutes;
141+
if (this._namedRoutes == null)
142+
this._processRoutes();
143+
144+
return this._namedRoutes;
143145
},
144146

145147
/**
146148
* Returns the route with the given name.
147149
*/
148150
getRouteByName: function (routeName) {
149-
return this.state.namedRoutes[routeName] || null;
151+
var namedRoutes = this.getNamedRoutes();
152+
return namedRoutes[routeName] || null;
150153
},
151154

152155
childContextTypes: {

0 commit comments

Comments
 (0)