Javascript 从redux中访问服务器道具?

Javascript 从redux中访问服务器道具?,javascript,reactjs,redux,react-engine,Javascript,Reactjs,Redux,React Engine,我正在尝试使用redux,react引擎,以及react路由器 我的问题是,react engine提供了一个来自服务器的props对象。如何从我提供的应用程序中访问这些道具 ProvidedApp.js import React from 'react' import { connect, Provider } from 'react-redux' import App from './app' import { mapStateToProps, mapDispatchToProps, sto

我正在尝试使用
redux
react引擎
,以及
react路由器

我的问题是,
react engine
提供了一个来自服务器的
props
对象。如何从我提供的应用程序中访问这些道具

ProvidedApp.js

import React from 'react'
import { connect, Provider } from 'react-redux'
import App from './app'
import { mapStateToProps, mapDispatchToProps, store } from './redux-stuff'

// Connected Component
let ConnectedApp = connect(
  mapStateToProps,
  mapDispatchToProps
)(App)

let ProvidedApp = () => (
  <Provider store={store}>
    <ConnectedApp/>
  </Provider>
)

export default ProvidedApp
import React from 'react'
import { Router, Route } from 'react-router'

import Layout from './views/Layout'
import App from './views/ProvidedApp'

module.exports = (
  <Router>
    <Route path='/' component={Layout}>
      <Route path='/app' component={App} />
      <Route path='/app/dev' component={App} />
    </Route>
  </Router>
)
import React from 'react'
import { connect, Provider } from 'react-redux'
import App from './app'
import { mapStateToProps, mapDispatchToProps} from './redux-stuff'

let ConnectedApp = connect(
  mapStateToProps,
  mapDispatchToProps
)(App)

export default ConnectedApp
import React from 'react'
import { Provider } from 'react-redux'
import { Router, Route } from 'react-router'
import { store } from './redux-stuff'

import Layout from './views/Layout'
import App from './views/ConnectedApp'

module.exports = (
  <Provider store={store}>
    <Router>
      <Route path='/' component={Layout}>
        <Route path='/app' component={App} />
      </Route>
    </Router>
  </Provider>
)
Routes.js

import React from 'react'
import { connect, Provider } from 'react-redux'
import App from './app'
import { mapStateToProps, mapDispatchToProps, store } from './redux-stuff'

// Connected Component
let ConnectedApp = connect(
  mapStateToProps,
  mapDispatchToProps
)(App)

let ProvidedApp = () => (
  <Provider store={store}>
    <ConnectedApp/>
  </Provider>
)

export default ProvidedApp
import React from 'react'
import { Router, Route } from 'react-router'

import Layout from './views/Layout'
import App from './views/ProvidedApp'

module.exports = (
  <Router>
    <Route path='/' component={Layout}>
      <Route path='/app' component={App} />
      <Route path='/app/dev' component={App} />
    </Route>
  </Router>
)
import React from 'react'
import { connect, Provider } from 'react-redux'
import App from './app'
import { mapStateToProps, mapDispatchToProps} from './redux-stuff'

let ConnectedApp = connect(
  mapStateToProps,
  mapDispatchToProps
)(App)

export default ConnectedApp
import React from 'react'
import { Provider } from 'react-redux'
import { Router, Route } from 'react-router'
import { store } from './redux-stuff'

import Layout from './views/Layout'
import App from './views/ConnectedApp'

module.exports = (
  <Provider store={store}>
    <Router>
      <Route path='/' component={Layout}>
        <Route path='/app' component={App} />
      </Route>
    </Router>
  </Provider>
)

似乎我需要包装
reducer
store
并将
ServerProps
传递到如下默认状态

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>
  )
}
让getDefaultState=(serverProps)=>{
返回{
“appName”:serverProps.appName
}
}
让getReducer=(serverProps)=>{
让defaultState=getDefaultState(serverProps)
返回(状态=默认状态,操作)=>{
}
}
让getStore=(serverProps)=>{
let reducer=getReducer(serverProps)
返回存储=创建存储(还原器)
}
让ConnectedApp=connect(
MapStateTops,
mapDispatchToProps
)(应用程序)
让ProvidedApp=(serverProps)=>{
返回(
)
}

这太难看了:/

当你做
的时候出了什么问题
?@VonD此错误:
在“连接(应用)”的上下文或道具中找不到“存储”。将根组件包装在中,或者将“存储”作为道具显式传递给“连接(应用)”。
@VonD更新了我的代码:(好的。您使用的是什么版本的React和React redux?您确定只使用了一个版本的React吗?您在服务器上实例化了redux存储吗?我可能弄错了,但这看起来像是客户端代码,也就是说,似乎没有人从
React dom/server
导入
renderToString
,这是用于服务的右侧。不确定是否遇到: