2016-11-13 12 views
0

我試圖將一些數據傳遞給我的組件。我發現這個例子:http://www.tech-dojo.org/#!/articles/56b1af3e8ff769fc29f96ae8 我創建了一個類DataWrapper它看起來像在例如:如何通過服務器端渲染將數據傳遞給來自節點的React組件

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總是未定義的。我錯過了什麼?有沒有其他方法可以做到這一點?

回答

相關問題