File tree 4 files changed +31
-16
lines changed
4 files changed +31
-16
lines changed Original file line number Diff line number Diff line change 1
1
var ReactDOM = require ( 'react-dom' ) ;
2
+ var React = require ( 'react' ) ;
2
3
var routes = require ( './routes/routes.jsx' ) ;
4
+ var Redux = require ( 'redux' ) ;
5
+ var Provider = require ( 'react-redux' ) . Provider ;
6
+
7
+ function reducer ( state ) { return state ; }
8
+
9
+ var store = Redux . createStore ( reducer , window . PROPS ) ;
3
10
4
11
ReactDOM . render (
5
- routes , document
12
+ < Provider store = { store } >
13
+ { routes }
14
+ </ Provider > , document
6
15
) ;
Original file line number Diff line number Diff line change @@ -2,20 +2,24 @@ var router = require('express').Router();
2
2
var React = require ( 'react' ) ;
3
3
var ReactDOMServer = require ( 'react-dom/server' ) ;
4
4
var ReactRouter = require ( 'react-router' ) ;
5
+ var Redux = require ( 'redux' ) ;
6
+ var Provider = require ( 'react-redux' ) . Provider ;
7
+
8
+ function reducer ( state ) { return state ; }
5
9
6
10
router . get ( '*' , function ( request , response ) {
7
- var props = { title : 'Universal React' } ;
11
+ var initialState = { title : 'Universal React' } ;
12
+ var store = Redux . createStore ( reducer , initialState ) ;
13
+
8
14
ReactRouter . match ( {
9
15
routes : require ( './routes.jsx' ) ,
10
16
location : request . url
11
17
} , function ( error , redirectLocation , renderProps ) {
12
18
if ( renderProps ) {
13
19
var html = ReactDOMServer . renderToString (
14
- < ReactRouter . RouterContext { ...renderProps }
15
- createElement = { function ( Component , renderProps ) {
16
- return < Component { ...renderProps } custom = { props } /> ;
17
- } }
18
- />
20
+ < Provider store = { store } >
21
+ < ReactRouter . RouterContext { ...renderProps } />
22
+ </ Provider >
19
23
) ;
20
24
response . send ( html ) ;
21
25
} else {
Original file line number Diff line number Diff line change @@ -5,14 +5,8 @@ var Route = ReactRouter.Route;
5
5
var IndexRoute = ReactRouter . IndexRoute ;
6
6
var browserHistory = ReactRouter . browserHistory ;
7
7
8
- if ( typeof window === 'object' ) {
9
- function createElement ( Component , props ) {
10
- return < Component { ...props } custom = { window . PROPS } /> ;
11
- }
12
- }
13
-
14
8
module . exports = (
15
- < Router history = { browserHistory } createElement = { createElement } >
9
+ < Router history = { browserHistory } >
16
10
< Route path = '/' component = { require ( '../views/Layout.jsx' ) } >
17
11
< IndexRoute component = { require ( '../views/Index.jsx' ) } />
18
12
< Route path = 'about' component = { require ( '../views/About.jsx' ) } />
Original file line number Diff line number Diff line change 1
1
var React = require ( 'react' ) ;
2
2
var Link = require ( 'react-router' ) . Link ;
3
+ var connect = require ( 'react-redux' ) . connect ;
3
4
4
- module . exports = React . createClass ( {
5
- displayName : 'Layout' ,
5
+ var Layout = React . createClass ( {
6
6
_handleClick : function ( ) {
7
7
alert ( ) ;
8
8
} ,
@@ -36,3 +36,11 @@ module.exports = React.createClass({
36
36
) ;
37
37
}
38
38
} ) ;
39
+
40
+ var wrapper = connect (
41
+ function ( state ) {
42
+ return { custom : state } ;
43
+ }
44
+ ) ;
45
+
46
+ module . exports = wrapper ( Layout ) ;
You can’t perform that action at this time.
0 commit comments