Reactjs React.js 0.13-警告:有东西正在直接调用React组件。改用工厂或JSX

Reactjs React.js 0.13-警告:有东西正在直接调用React组件。改用工厂或JSX,reactjs,isomorphic-javascript,Reactjs,Isomorphic Javascript,运行服务器端下面的代码,我得到 警告:有东西正在直接调用React组件。请使用 工厂或JSX。” 但是我在server.js中使用工厂(不使用JSX时),在组件中使用JSX。那有什么问题 好的,然后我尝试在父组件中使用工厂(将var Child=require('./Child');更改为var Child=React.createFactory(require('./Child')); 在这种情况下,服务器可以正常工作,但客户端不能: InstanceReactComponent.js:43未

运行服务器端下面的代码,我得到

警告:有东西正在直接调用React组件。请使用 工厂或JSX。”

但是我在server.js中使用工厂(不使用JSX时),在组件中使用JSX。那有什么问题

好的,然后我尝试在父组件中使用工厂(将
var Child=require('./Child');
更改为
var Child=React.createFactory(require('./Child'));
在这种情况下,服务器可以正常工作,但客户端不能:

InstanceReactComponent.js:43未捕获类型错误:无法读取未定义的属性“mountComponent”

那么,如何使它同时在服务器和客户端上运行呢

组件/Parent.js:

/** @jsx React.DOM */

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

var Parent = React.createClass({
    render: function() {
        return (
            <div className="a-child">
                <Child />
            </div>
        )
    }
});

module.exports = Parent
/** @jsx React.DOM */

var React = require('react');

var Child = React.createClass({
    render: function() {
        return (
            <span>I'm a Child!</span>
        )
    }
});

module.exports = Child;
var JSX = require('node-jsx').install();
var React = require('react');
var Parent = React.createFactory(require('./components/Parent'));
...
var markup = React.renderToString(Parent());
...
var React = require('react');
var Parent = require('./components/Parent');
...
React.render(<Parent />, document.getElementById('app'));
client.js:

/** @jsx React.DOM */

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

var Parent = React.createClass({
    render: function() {
        return (
            <div className="a-child">
                <Child />
            </div>
        )
    }
});

module.exports = Parent
/** @jsx React.DOM */

var React = require('react');

var Child = React.createClass({
    render: function() {
        return (
            <span>I'm a Child!</span>
        )
    }
});

module.exports = Child;
var JSX = require('node-jsx').install();
var React = require('react');
var Parent = React.createFactory(require('./components/Parent'));
...
var markup = React.renderToString(Parent());
...
var React = require('react');
var Parent = require('./components/Parent');
...
React.render(<Parent />, document.getElementById('app'));
var React=require('React');
var Parent=需要('./组件/父级');
...
React.render(,document.getElementById('app'));

您使用的是哪个版本的node jsx?jsx用于将
编译为
组件类()
,所以这里可能就是这样


尝试用
require('babel/register')
hook更新节点jsx。

谢谢,就是这样。我用了0.11.0,更新到了0.12.4,现在它可以工作了。