Подтвердить что ты не робот

_reactDom2.default.render не является функцией

рассмотрим следующий код реакции

Файл 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
    }





};

У меня также есть файл .babelrc

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

Ответ 1

Вы можете что-то изменить в своем компоненте Maincontainner.

  • Добавьте его вверху: import ReactDOM from 'react-dom';
  • Измените render на ReactDOM.render

Ответ 2

Обновление реакции и реагирования на "^ 15.2.1" работает для меня. Надеюсь, это поможет вам.

Ответ 3

Сначала я это делал.

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

И вскоре я понял, что я делаю неправильно, и обновил приведенные выше утверждения следующим образом.

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

Надеюсь, поможет.

Ответ 4

В моем случае я написал {import ReactDOM from 'react'}. Очевидно, я должен был использовать "реакцию",

Ответ 5

Я решил эту ошибку, когда 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"
}

Ответ 6

В некоторых учебных пособиях я использовал этот менталитет, и, похоже, он работает хорошо.

'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')
);

Надеюсь, это поможет... Иногда все зависимости, трансляция и конфигурации делают этот материал немного ошеломляющим -_-