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
,这是用于服务的右侧。不确定是否遇到: