![](/img/trans.png)
[英]How to pass data in server side rendering to reactjs component from node
[英]How to pass data with server-side rendering to React-component from Node
我正在尝试将一些数据传递给我的组件。 我找到了以下示例: http : //www.tech-dojo.org/#!/ articles/56b1af3e8ff769fc29f96ae8我创建了一个DataWrapper类,该类类似于以下示例:
import React, { Component } from 'react'
export default class DataWrapper extends Component {
constructor(props) {
super(props)
}
getChildContext () {
return {
data: this.props.data
};
}
render () {
return this.props.children;
}
}
DataWrapper.childContextTypes = {
data: React.PropTypes.oneOfType([
React.PropTypes.object,
React.PropTypes.string
]).isRequired
};
节点服务器:
app.get('*', (req, res) => {
match({ routes, location: req.url }, (error, redirectLocation, renderProps) => {
...
const body = renderToString(
<MuiThemeProvider muiTheme={theme}>
<DataWrapper data={'somedata'}>
<RouterContext {...renderProps} />
</DataWrapper>
</MuiThemeProvider>
)
res.render('index', { title, body })
我要使用数据的组件如下所示:
export default class Template extends Component {
constructor(props, context) {
super(props, context)
console.log("Template context", context.data);
...
context.data始终是未定义的。 我想念什么? 还有其他方法吗?
If contextTypes is not defined, then context will be an empty object.
,直接从React Docs引用。 https://facebook.github.io/react/docs/context.html#how-to-use-context
您将需要添加
Template.contextTypes = {
data: // whatever type it is
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.