元素类型无效:应为字符串(用于内置组件)或类/函数

新手上路,请多包涵
import React from 'react';
import ReactDOM from 'react-dom';
import Map from './components/map/container/map';
import App from './App';
import './index.css';
import shell from './shared/utility/shell';
import { render } from 'react-dom'
import { Provider } from 'react-redux'
import { createStore, applyMiddleware, compose } from 'redux'
import { routerMiddleware, ConnectedRouter } from 'react-router-redux'
import thunk from 'redux-thunk'
import createHistory from 'history/createBrowserHistory'
import rootReducer from './reducers'
import registerServiceWorker from './registerServiceWorker';
import { Routes } from './config';

const history = createHistory();
const target = document.querySelector('#root')
const initialState = {};
const enhancers = [];
const middleware = [
thunk,
routerMiddleware(history)
 ];

if (process.env.NODE_ENV === 'development') {
const devToolsExtension = window.devToolsExtension;

if (typeof devToolsExtension === 'function') {
enhancers.push(devToolsExtension());
 }
}
const composedEnhancers = compose(
applyMiddleware(...middleware),
  ...enhancers
);
const store = createStore(
 rootReducer,
 initialState,
 composedEnhancers
);
render(
  <Provider store={store}>
   <ConnectedRouter history={history}>
    <div>
     <Routes />
    </div>
   </ConnectedRouter>
  </Provider>,
  target
   )
 registerServiceWorker();
 ReactDOM.render(<App />, document.getElementById('root'));
 registerServiceWorker();


我正在尝试在 redux 的帮助下调用 API 并将其数据显示在表格中。我收到这个错误。以上是我的 index.js 文件。


1. 元素类型无效:应为字符串(对于内置组件)或类/函数(对于复合组件),但得到:未定义。您可能忘记从定义它的文件中导出您的组件。


2. React.createElement:类型无效——期望一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:未定义。您可能忘记从定义它的文件中导出您的组件。

我提到了很多我无法识别错误的答案。

原文由 Varun thadhani 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 808
1 个回答

问题出在导入语句中。您在导入一些组件时没有使用大括号,例如 createHistory

如果组件使用默认导出,例如:

 export default X

然后你可以像这样简单地导入它:

 import X from './X';

但是,如果您使用的是命名导出,例如:

 export const X=1;

然后你需要在花括号中导入它,比如:

 import {X} from './X';

所以看看你的进口。这将解决您的问题。

原文由 Vikram Saini 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进