尝试得到react-router (v4.0.0)和react-hot loader (3.0.0-beta.6)很好地发挥,但在浏览器控制台得到以下错误:

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.

index.js:

import React from 'react';
import ReactDom from 'react-dom';
import routes from './routes.js';
require('jquery');
import 'bootstrap/dist/css/bootstrap.min.css';
import 'bootstrap/dist/js/bootstrap.min.js';
import './css/main.css';

const renderApp = (appRoutes) => {
    ReactDom.render(appRoutes, document.getElementById('root'));
};

renderApp( routes() );

routes.js:

import React from 'react';
import { AppContainer } from 'react-hot-loader';
import { Router, Route, browserHistory, IndexRoute } from 'react-router';
import store from './store/store.js';
import { Provider } from 'react-redux';
import App from './containers/App.jsx';
import Products from './containers/shop/Products.jsx';
import Basket from './containers/shop/Basket.jsx';

const routes = () => (

    <AppContainer>
        <Provider store={store}>
            <Router history={browserHistory}>
                <Route path="/" component={App}>
                    <IndexRoute component={Products} />
                    <Route path="/basket" component={Basket} />
                </Route>
            </Router>
        </Provider>
    </AppContainer>

);

export default routes;

当前回答

当我在我的渲染/返回语句中有一个糟糕的引用时,这个问题出现在我身上。(指向不存在的类)。 还要检查return语句代码中的错误引用。

其他回答

我得到了这个错误,没有一个响应是我的情况下,这可能会帮助一些人谷歌:

我定义了一个错误的Proptype:

ids: PropTypes.array(PropTypes.string)

它应该是:

ids: PropTypes.arrayOf(PropTypes.string)

VSCode和编译错误没有给我一个正确的提示。

我也有类似的问题。发生这种情况是因为我在父组件中导入了一个被删除并且实际上不存在的子组件。我审查了每个导入的父组件,在这种情况下,父组件是ListaNegra.js

您需要了解命名导出和默认导出。我什么时候应该用大括号导入ES6 ?

在我的例子中,我通过改变

import Provider from 'react-redux'

to

import { Provider } from 'react-redux'

对我来说,我导入阿凡达就像 进口{ 《阿凡达》 }从'react-native-paper'; 在渲染时,我在TouchableOpacity中包装了Avatar元素,这导致了上述问题。移除TouchableOpacity后,一切正常。 <阿凡达。图像 ={{来源 uri:“……” }} 大小= {80} />

我的情况不像上面许多人说的那样是一个重要的问题。在我的版本中,我们使用了一个包装器组件来做一些转换逻辑,我错误地传递了子组件,就像这样:

const WrappedComponent = I18nWrapper(<ChildForm {...additionalProps} />);

当我应该把它作为一个函数传递的时候:

const WrappedComponent = I18nWrapper(() => <ChildForm {...additionalProps} />);