i'm trying use redux
, react-engine
, , react-router
.
the issue or question have react-engine
provides object of props
come server. how access these props within providedapp
?
providedapp.js
import react 'react' import { connect, provider } 'react-redux' import app './app' import { mapstatetoprops, mapdispatchtoprops, store } './redux-stuff' // connected component let connectedapp = connect( mapstatetoprops, mapdispatchtoprops )(app) let providedapp = () => ( <provider store={store}> <connectedapp/> </provider> ) export default providedapp
routes.js
import react 'react' import { router, route } 'react-router' import layout './views/layout' import app './views/providedapp' module.exports = ( <router> <route path='/' component={layout}> <route path='/app' component={app} /> <route path='/app/dev' component={app} /> </route> </router> )
i think configuration little wonky, couldn't provider
working other way. if theres way have provider
wrap router
i'd love working.
here's code of looks when move provider
above router
connectedapp.js
import react 'react' import { connect, provider } 'react-redux' import app './app' import { mapstatetoprops, mapdispatchtoprops} './redux-stuff' let connectedapp = connect( mapstatetoprops, mapdispatchtoprops )(app) export default connectedapp
routes.js
import react 'react' import { provider } 'react-redux' import { router, route } 'react-router' import { store } './redux-stuff' import layout './views/layout' import app './views/connectedapp' module.exports = ( <provider store={store}> <router> <route path='/' component={layout}> <route path='/app' component={app} /> </route> </router> </provider> )
i error:
could not find "store" in either context or props of "connect(app)". either wrap root component in <provider>, or explicitly pass "store" prop "connect(app)".
update
i found can access code in first example within providedapp
. have no clue how i'm supposed pass redux.
let providedapp = (props) => { console.log(props) return ( <provider store={store}> <connectedapp/> </provider> ) }
seems need wrap reducer
, store
, pass in serverprops
default state this.
let getdefaultstate = (serverprops) => { return { 'appname': serverprops.appname } } let getreducer = (serverprops) => { let defaultstate = getdefaultstate(serverprops) return (state = defaultstate, action) => { } } let getstore = (serverprops) => { let reducer = getreducer(serverprops) return store = createstore(reducer) } let connectedapp = connect( mapstatetoprops, mapdispatchtoprops )(app) let providedapp = (serverprops) => { return ( <provider store={getstore(serverprops)}> <connectedapp/> </provider> ) }
this super ugly :/
Comments
Post a Comment