2017-05-29 40 views
0

我想使用React和Node.js來構建一個應用程序,但我不知道如何在前端使用React。我正在嘗試關注this tutorial。現在,在我的routes.js文件,我有:不變違規:renderComponentToString():你必須通過一個有效的ReactComponent

var JSX = require('node-jsx').install(); 
var React = require('react'); 
var Homepage = require('./../components/Homepage'); 

module.exports = { 

    index: function(req, res) { 
     var markup = React.renderComponentToString(Homepage); 

     res.render('home', { 
      markup: markup 
     }); 
    } 

}; 

的renderComponentToString方法似乎是問題,因爲我的服務器開始,然後我收到錯誤信息「錯誤:違反不變:renderComponentToString():你必須傳遞一個有效的ReactComponent。「我的主頁組件看起來像:

/** @jsx React.DOM */ 

var React = require('react'); 
var style = require('./style'); 

module.exports = About = React.createClass({ 
    render: function() { 

     return (
      <div style={ style.style1 }> 
       some more code here 
      </div> 
     ) 

    } 
}) 

我似乎無法弄清楚我的反應組件有什麼問題。任何幫助,將不勝感激。謝謝!

+0

@MayankShukla:'./../組件/ Homepage'是一樣的'../組件/ Homepage'。 –

+0

路徑很奇怪,因爲我實際上有一個包含兩個不同路徑文件的路徑文件夾。我現在在路由文件#1中,所以我只是在流淌到父目錄來訪問組件文件夾。 – gridproquo

+0

'Homepage'是一個功能。我假設'renderComponentToString'實際上需要一個元素:'React.renderComponentToString();'(或'React.renderComponentToString(React.createElement(Homepage));'' –

回答

0

React.renderComponentToString接受一個React組件。嘗試通過它像

var markup = React.renderComponentToString(Homepage()); 

參考this鏈接

相關問題