使用Create-React-App时,Webpack要求抛出目标容器不是DOM元素吗?

时间:2018-07-25 11:34:37

标签: javascript reactjs

我正在尝试使用Create-React-App来模仿#{3}},以重新创建样板并设置一个新的dev ReactJS开发环境。

在进行更改之前,我已经确保可以在http://localhost:3000/上看到默认的登录页面。

以下是我已完成的步骤:

  1. 删除src文件夹中的所有文件
  2. npm install react-redux redux
  3. index.js文件夹中添加src
  4. components文件夹中添加reducerssrc目录
  5. app.js文件夹中添加src/components/
  6. index.js文件夹中添加src/reducers/

下面是文件的内容

  

src / index.js

import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import { createStore, applyMiddleware } from 'redux';

import App from './components/app';
import reducers from './reducers';

const createStoreWithMiddleware = applyMiddleware()(createStore);

ReactDOM.render(
  <Provider store={createStoreWithMiddleware(reducers)}>
    <App />
  </Provider>
  , document.querySelector('.container'));
  

src / reducers / index.js

import { combineReducers } from 'redux';

const rootReducer = combineReducers({
  state: (state = {}) => state
});

export default rootReducer;
  

src / components / app.js

import React, { Component } from 'react';

export default class App extends Component {
  render() {
    return (
      <div>React simple starter</div>
    );
  }
}

我在下面遇到错误

this repo

更新

根据反馈,我将index.html包括如下

  

index.html

<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="/style/style.css">
    <link rel="stylesheet" href="https://cdn.rawgit.com/twbs/bootstrap/48938155eb24b4ccdde09426066869504c6dab3c/dist/css/bootstrap.min.css">
    <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAq06l5RUVfib62IYRQacLc-KAy0XIWAVs"></script>
  </head>
  <body>
    <div class="container"></div>
  </body>
  <script src="/bundle.js"></script>
</html>

1 个答案:

答案 0 :(得分:2)

如果使用react-create-app,它将生成一个HTML文件,其中没有document.querySelector('.container')。取而代之的是,此html文件具有<div id="root"></div>,因此您可以尝试从document.querySelector('.container')更改为document.querySelector('#root')。 如果没有帮助,请显示您的HTML文件。