Reactjs &引用;React.createElement:类型无效";使用ConnectedRouter时

Reactjs &引用;React.createElement:类型无效";使用ConnectedRouter时,reactjs,react-router,react-router-redux,Reactjs,React Router,React Router Redux,代码是一个演示水疗中心,有两条路线(回家和柜台)。为什么捆绑时使用ConnectedRouter会发出以下警告,而使用BrowserRouter则可以正常工作 Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely

代码是一个演示水疗中心,有两条路线(回家和柜台)。为什么捆绑时使用
ConnectedRouter
会发出以下警告,而使用
BrowserRouter
则可以正常工作

Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in. Check the render method of `Unknown`.
in Unknown
in AppContainer
App.jsx

import React from 'react';
import { createStore, combineReducers, applyMiddleware } from 'redux';
import { Provider } from 'react-redux';
import { Route } from 'react-router-dom';
import { ConnectedRouter, routerReducer, routerMiddleware } from 'react-router-redux';
import createHistory from 'history/createBrowserHistory';

import Counter from './containers/Counter';
import countReducer from './reducers';

const history = createHistory();

const store = createStore(
  combineReducers({
    count: countReducer,
    router: routerReducer
  },
  applyMiddleware(
    routerMiddleware(history)
  )
);

export default () => (
  <Provider store={store}>
    <ConnectedRouter history={history}>
      <div>
        <Route exact path="/" render={() => <h1>Hello, World!</h1>} />
        <Route path="/counter" component={Counter} />
      </div>
    </ConnectedRouter>
  </Provider>
);
import React from 'react';
import ReactDOM from 'react-dom';

import App from './App';

const render = (Component) => {
  ReactDOM.render(
    Component,
    document.getElementById('root')
  );
};

if (process.env.NODE_ENV === 'production') {
  render(<App />);
} else {
  const { AppContainer } = require('react-hot-loader');

  render(
    <AppContainer>
      <App />
    </AppContainer>
  );

  if (module.hot) {
    module.hot.accept('./App', () => {
      const NextApp = require('./App').default;

      render(
        <AppContainer>
          <NextApp />
        </AppContainer>
      );
    });
  }
}
从“React”导入React;
从'redux'导入{createStore,combinereducer,applyMiddleware};
从'react redux'导入{Provider};
从'react router dom'导入{Route};
从“react router redux”导入{ConnectedRouter,routerReducer,routerMiddleware};
从“历史记录/createBrowserHistory”导入createHistory;
从“./集装箱/柜台”导入柜台;
从“./reducers”导入countReducer;
const history=createHistory();
const store=createStore(
组合传感器({
count:countReducer,
路由器:路由器导出器
},
applyMiddleware(
路由器管理软件(历史记录)
)
);
导出默认值()=>(
你好,世界!}/>
);
index.jsx

import React from 'react';
import { createStore, combineReducers, applyMiddleware } from 'redux';
import { Provider } from 'react-redux';
import { Route } from 'react-router-dom';
import { ConnectedRouter, routerReducer, routerMiddleware } from 'react-router-redux';
import createHistory from 'history/createBrowserHistory';

import Counter from './containers/Counter';
import countReducer from './reducers';

const history = createHistory();

const store = createStore(
  combineReducers({
    count: countReducer,
    router: routerReducer
  },
  applyMiddleware(
    routerMiddleware(history)
  )
);

export default () => (
  <Provider store={store}>
    <ConnectedRouter history={history}>
      <div>
        <Route exact path="/" render={() => <h1>Hello, World!</h1>} />
        <Route path="/counter" component={Counter} />
      </div>
    </ConnectedRouter>
  </Provider>
);
import React from 'react';
import ReactDOM from 'react-dom';

import App from './App';

const render = (Component) => {
  ReactDOM.render(
    Component,
    document.getElementById('root')
  );
};

if (process.env.NODE_ENV === 'production') {
  render(<App />);
} else {
  const { AppContainer } = require('react-hot-loader');

  render(
    <AppContainer>
      <App />
    </AppContainer>
  );

  if (module.hot) {
    module.hot.accept('./App', () => {
      const NextApp = require('./App').default;

      render(
        <AppContainer>
          <NextApp />
        </AppContainer>
      );
    });
  }
}
从“React”导入React;
从“react dom”导入react dom;
从“./App”导入应用程序;
常量渲染=(组件)=>{
ReactDOM.render(
组成部分,
document.getElementById('root'))
);
};
if(process.env.NODE_env===‘生产’){
render();
}否则{
const{AppContainer}=require('react-hot-loader');
渲染(
);
如果(模块热){
module.hot.accept('./App',()=>{
const nextap=require('./App')。默认值;
渲染(
);
});
}
}

显示AppContainer组件。@安德鲁:你能详细说明一下吗?我也尝试在顶部导入它,但结果相同。我错过了AppContainer是hotloader组件。我认为这是自定义的。我不确定哪里有问题。如果你改为
导出默认值()=>(测试)
您会有错误吗?问题在完全重写后得到解决。不知道我遗漏了什么。