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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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 使用最新版本对未渲染的组件进行反应_Reactjs_Webpack_Babeljs - Fatal编程技术网

Reactjs 使用最新版本对未渲染的组件进行反应

Reactjs 使用最新版本对未渲染的组件进行反应,reactjs,webpack,babeljs,Reactjs,Webpack,Babeljs,我的react组件没有渲染,所以我怀疑很多事情,直到我注意到它只适用于较旧的react版本: npm install --save react@0.14.7 组件未使用最新的React(版本16)进行渲染 要使React 16起作用,应该更改哪些内容 webpack.config.js: module.exports = { entry: "./app-client.js", output: { filename: "public/bundle.js"

我的react组件没有渲染,所以我怀疑很多事情,直到我注意到它只适用于较旧的react版本:

npm install --save react@0.14.7
组件未使用最新的React(版本16)进行渲染

要使React 16起作用,应该更改哪些内容

webpack.config.js:

module.exports = {
    entry: "./app-client.js",
    output: {
        filename: "public/bundle.js"
    },
    module: {
        loaders: [
            {
                exclude: /(node_modules|app-server.js)/,
               loader: 'babel-loader'
            }
        ]
    }
};
.babel.rc:

{
    "presets": [
        ["es2015"],
        "react"
    ],
    "plugins": [
        "babel-plugin-transform-class-properties"
    ]
}
app-client.js:

var React = require('react');
var APP = require('./components/APP');

React.render(<APP />, document.getElementById('react-container'));
组件/APP.js:

var React = require('react');

var APP = React.createClass({
    render() {
        return (<h1>Hello World form React</h1>);
    }
});

module.exports = APP;   
var React=require('React');
var APP=React.createClass({
render(){
return(helloworld形式React);
}
});
module.exports=APP;

React.createClass
长期以来被弃用。我的猜测是,自16.0版()

因此,既然您询问了如何解决此问题,那么以下是选项:

  • 坚持使用<16.0的版本(我不建议这样做)
  • 使用
    createreact类
    package(我也不建议这样做)
  • 迁移到
    组件(我认为这是最好的选择)

React.createClass
长期以来被弃用。我的猜测是,自16.0版()

因此,既然您询问了如何解决此问题,那么以下是选项:

  • 坚持使用<16.0的版本(我不建议这样做)
  • 使用
    createreact类
    package(我也不建议这样做)
  • 迁移到
    组件(我认为这是最好的选择)
根据,
React.creaateClass
现在作为一个单独的包提供,
React create class
。这就是为什么您认为代码很可能不起作用

另外,您必须使用
React.render
,而不是
React.render
,根据,
React.creaateClass
现在作为一个单独的包
React create class
提供。这就是为什么您认为代码很可能不起作用

另外,您必须使用
React.render
,而不是
ReactDOM.render

解决方案是使用“创建React类”(感谢@pwolaq和@Victor),并使用ReactDOM而不是React进行渲染:

APP.js:

var React = require('react');
var createReactClass = require('create-react-class');

var io = require('socket.io-client');

//var APP = React.createClass({
var APP = createReactClass({
    render() {
        return(<h1>Hello World from React</h1>);
    }
});

module.exports = APP;
var React=require('React');
var createReactClass=require('create-react-class');
var io=require('socket.io客户端');
//var APP=React.createClass({
var APP=createReactClass({
render(){
返回(来自React的Hello World);
}
});
module.exports=APP;
app-client.js:

var React = require('react');
var ReactDOM = require('react-dom');
var APP = require('./components/APP');

//React.render(<APP />, document.getElementById('react-container'));
ReactDOM.render(<APP />, document.getElementById('react-container'));
var React=require('React');
var ReactDOM=require('react-dom');
var-APP=require('./组件/APP');
//React.render(,document.getElementById('React-container');
render(,document.getElementById('react-container');
解决方案是使用“创建react类”(感谢@pwolaq和@Victor),并使用ReactDOM而不是react进行渲染:

APP.js:

var React = require('react');
var createReactClass = require('create-react-class');

var io = require('socket.io-client');

//var APP = React.createClass({
var APP = createReactClass({
    render() {
        return(<h1>Hello World from React</h1>);
    }
});

module.exports = APP;
var React=require('React');
var createReactClass=require('create-react-class');
var io=require('socket.io客户端');
//var APP=React.createClass({
var APP=createReactClass({
render(){
返回(来自React的Hello World);
}
});
module.exports=APP;
app-client.js:

var React = require('react');
var ReactDOM = require('react-dom');
var APP = require('./components/APP');

//React.render(<APP />, document.getElementById('react-container'));
ReactDOM.render(<APP />, document.getElementById('react-container'));
var React=require('React');
var ReactDOM=require('react-dom');
var-APP=require('./组件/APP');
//React.render(,document.getElementById('React-container');
render(,document.getElementById('react-container');

I更新了APP.js,但它仍然没有呈现:
var ReactCreateClass=require('react-create-class');var APP=ReactCreateClass({render(){return(Hello World from react);}}});module.exports=APP;
请查看我的编辑。(很抱歉格式不好。免责声明:我已经在手机上写了这个。我一到电脑前就会更新格式)我更新了APP.js,但它仍然没有呈现:
var ReactCreateClass=require('react-create-class');var APP=ReactCreateClass({render(){return(Hello World from react);});module.exports=APP;
请查看我的编辑。(很抱歉格式不好。免责声明:我已经在手机上写了这篇文章。我一到电脑前就会更新格式)请参阅下面的评论。另外,您能否举一个“迁移到类组件”的示例?首先,它是
create react class
,而不是
react create class
;然后,在将其与create react class一起使用之前,您需要执行
npm安装。不是rendered@trogne也许这会对您有所帮助:如果我在app-client.js中使用ReactDOM:
ReactDOM.render(,document.getElementById('react-container'),它会起作用
请参见下面的注释。另外,您能举一个“迁移到类组件”的例子吗?首先,它是
create react class
,而不是
react create class
;然后,在将其与create react class一起使用之前,您需要执行
npm安装。不是rendered@trogne也许这会对您有所帮助:如果我在app-client.js中使用ReactDOM:
ReactDOM.render(,document.getElementById('react-container'),它会起作用;