Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 将react组件转换为字符串时出错_Reactjs_Ecmascript 6_Babeljs - Fatal编程技术网

Reactjs 将react组件转换为字符串时出错

Reactjs 将react组件转换为字符串时出错,reactjs,ecmascript-6,babeljs,Reactjs,Ecmascript 6,Babeljs,我已经和react合作了几个月,并且已经成功地进行了服务器端渲染。最近我开始用ES6+Babel重写一个个人应用程序。当我尝试在react组件上运行renderToString()时,我遇到以下错误: renderToString():必须传递有效的元素 一些代码 组件 另一个问题:我应该将组件保存为.jsx还是.js?(我在html组件的呈现方法中使用了jsx)在这种情况下,您需要从info box.jsx导入类InfoBox,因为在info box.jsx中没有 或者将default添加到信

我已经和react合作了几个月,并且已经成功地进行了服务器端渲染。最近我开始用ES6+Babel重写一个个人应用程序。当我尝试在react组件上运行
renderToString()
时,我遇到以下错误:

renderToString():必须传递有效的元素

一些代码

组件


另一个问题:我应该将组件保存为
.jsx
还是
.js
?(我在html组件的呈现方法中使用了
jsx

在这种情况下,您需要从
info box.jsx
导入类
InfoBox
,因为在
info box.jsx
中没有

或者将
default
添加到
信息框.jsx

export default class InfoBox extends React.Component {}
       ^^^^^^^
更新:

您可以避免使用
createFactory
,只渲染react组件,如下所示

ReactDom.renderToString(<InfoBox />)
ReactDom.renderToString()
import { InfoBox } from '../react-components/info-box/info-box.jsx';
      ^^^       ^^^
export default class InfoBox extends React.Component {}
       ^^^^^^^
ReactDom.renderToString(<InfoBox />)