首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >服务器端组件呈现

服务器端组件呈现
EN

Stack Overflow用户
提问于 2015-10-24 15:31:47
回答 1查看 2.1K关注 0票数 2

我试图在服务器上使用一个非常简单的renderToString组件:

代码语言:javascript
复制
/** @jsx dom */
var React = require("react");

var Title = React.createClass({
  render: function(){
    return(<h1>Hello World</h1>) 
  }
});

module.exports = React.createFactory(Title);

当我调用ReactDOMServer.renderToString (组件)时,我得到了Error: Invariant Violation: renderToString(): You must pass a valid ReactElement.

如果我用React.createElement (标题)代替,我会得到

代码语言:javascript
复制
return(dom.h1(null, "Hello World")) 
           ^
ReferenceError: dom is not defined

路由文件:

代码语言:javascript
复制
var express = require('express'),
    router = express.Router(),
    React = require("react")
    ReactDOMServer = require("react-dom/server");  
    JSX = require('node-jsx').install({
      extension: '.jsx'
    }),
    AssessmentComponent = require("../react/components/title.react.jsx");

我不知道为什么这不管用!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-25 14:10:18

所以我犯了几个错误。解决办法如下:

( a)在要求组件时使用babel/寄存器意味着可以在不使用任何faff的情况下动态进行转涂;)

b) dom是由Babel的@jsx语法插入的。既然使用babel/登记簿,就没有必要这样做。

c)不建议使用createFactory导出组件,因为该组件的其他用户可能希望在该组件上调用createElement。

( d)我在路由文件上调用了createFactory,但它似乎返回了一个需要调用的函数。- ReactDOMServer.renderToString(Component())

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33319885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档