_reactDom2.default.render不是一个函数

时间:2016-04-02 16:56:42

标签: reactjs

考虑以下反应代码

main.js文件是:

import React from 'react';
import ReactDOM from 'react-dom';
import Maincontainner from './maincontainner';

ReactDOM.render(
    <div>
        <h1>News</h1>
        <Maincontainner/>
    </div>,
    document.getElementById('content')
);

,组件是:

import React from 'react';


export default class  Maincontainner extends React.Component{

    render() {
        console.log("I am here");
        return (<dev> Salman is here </dev>);
    }
}

问题是,当我运行应用程序时,我在控制台中遇到以下错误:

Uncaught TypeError: _reactDom2.default.render is not a function

这里是依赖项

"dependencies": {
    "webpack": "^1.12.14",
    "webpack-dev-server": "^1.14.1",
    "react" : "^0.14.7",
    "react-dom" : "^0.14.7",
    "babel-cli": "^6.5.1",
    "babel-preset-es2015": "^6.5.0",
    "babel-loader": "^6.2.1",
    "babel-preset-react": "^6.3.13",
    "babelify": "^7.2.0"


  }

更新:webpack.config.json

module.exports={

    entry: './js/main.js',
    output:{

        filename: 'bundle.js'
    },
    module: {
        loaders: [
            {
                test: /.js?$/,
                loader: 'babel',
                exclude: /node_modules/,
                query: {
                    presets: ['es2015', 'react']
                }
            }
        ]
    },
    devServer:{


        port:3000
    }





};

我还有1个.babelrc文件

{
  "presets": ["es2015", "react"]
}

8 个答案:

答案 0 :(得分:36)

您可以更改import ReactDOM from 'react-dom';组件中的内容。

  1. 将其添加到顶部:render
  2. ReactDOM.render更改为$scope.data httpGetAsync("myUrlWasHere", getBlogPosts, $scope.data);

答案 1 :(得分:2)

最初,我这样做。

import React from 'react-dom';
import ReactDom from 'react-dom';

很快我就意识到自己做错了什么,并将上述声明更新如下。

import React from 'react';
import ReactDom from 'react-dom';

希望它有所帮助。

答案 2 :(得分:1)

更新反应和反应“^ 15.2.1”对我有用。我希望它会对你有所帮助。

答案 3 :(得分:0)

就我而言,我写了{import ReactDOM来自&#39;反应&#39; }。显然,我应该使用&#39; react-dom&#39;

答案 4 :(得分:0)

更新react版本时,我解决了此错误。也许_reactDom2.default.render is not a function的意思是因为ReactDOM没有render功能。

"dependencies": {
  "react" : "^0.14.7",
  "react-dom" : "^0.14.7"
}

至:

"dependencies": {
  "react": "^16.5.2",
  "react-dom": "^16.5.2"
}

答案 5 :(得分:0)

在我的情况下,问题是:

import render from "react-dom"; 

vs

import { render } from "react-dom";

我必须以第二种方式进行操作,否则会出现该错误。会想知道为什么会因为它们都看起来有效

答案 6 :(得分:0)

将导入样式更改为

import React from "react";
import ReactDOM from "react-dom";

ReactDOM.render(
  <div>
     <App />
  </div>,
  document.getElementById('root')
);

答案 7 :(得分:-1)

我使用这种心态的一些教程似乎运作良好。

'use strict';

import React, { Component } from 'react';
import { render } from 'react-dom';

class Pokemon extends Component{
    render() {
        const { pokemon, id } = this.props;
        return (
            <div className="pokemon--species">..</div>
        );
    }
}


render(
    <div className="myDiv">Hello Electron!</div>,
    document.getElementById('content')
);

希望这会有所帮助......有时所有的依赖关系,转换和配置都会让这些东西变得有点压倒性的-_-