元素类型无效:应为字符串(对于内置组件)或类/函数 [英] Element type is invalid: expected a string (for built-in components) or a class/function

查看:34
本文介绍了元素类型无效:应为字符串(对于内置组件)或类/函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

</ConnectedRouter></提供者>,目标)注册服务工作者();ReactDOM.render(, document.getElementById('root'));注册服务工作者();


I am trying to call an API from with the help of redux and display its data in a table. I am getting this error. Above is my index.js file.

<小时>

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

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


<小时><块引用>

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

2. 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.

我参考了很多我无法识别错误的答案.

I have referred to many answers I am not able to recognize the error.

推荐答案

问题在于导入语句.您在导入诸如 createHistory 之类的组件时没有使用花括号.

Problem is in the import statements. You have not used curly braces while importing some components like createHistory.

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

If a component uses a default export like:

export default X

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

Then you can simply import it like:

import X from './X';

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

But if you are using a named export like:

export const X=1;

然后你需要用花括号导入它,如:

Then you need to import it in curly braces like:

import {X} from './X';

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

So have a look at your imports. This will resolve your issue.

这篇关于元素类型无效:应为字符串(对于内置组件)或类/函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆