检查Render方法 [英] Check the render method

查看:36
本文介绍了检查Render方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的是REACT、REDUX和REACT-REDUX-Router。当我运行应用程序时,我得到一个错误。我不明白它与我的App.js中的Reaction的呈现函数有什么关系。在我看来,问题出在代码中的其他位置。

错误如下:

 Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: object. Check the render method of `App`.
 in App
 in Router (created by ConnectedRouter)
 in ConnectedRouter
 in Provider       
 Uncaught Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object. Check the render method of `App`.

我的javascript App文件代码如下所示。

 import React from 'react';
 import Header from './common/Header';
 import HomePage from '../components/home/HomePage';
 import Routes from '../routes';            
 const App = () => (
   <div>
   <Header />              
   <Routes />
   </div>
     )

 export default App;

我的Javascript索引文件代码如下所示

 import 'babel-polyfill';
 import React from 'react';
 import {render} from 'react-dom';
 import {Provider} from 'react-redux';
 import {BrowserRouter as Router} from 'react-router-dom';
 import configureStore, {history} from './store/configureStore';
 import {loadProducts} from './actions/homeAction';
 import routes from './routes';
 import '../node_modules/bootstrap/dist/css/bootstrap.min.css';
 import {ConnectedRouter} from 'react-router-redux';
 import createHistory from 'history/createBrowserHistory'
 import App from './components/App';    

  const store = configureStore();
  store.dispatch(loadProducts("http://localhost:1219/portal/getProducts"));        
 render(
    <Provider store={store}>
    <ConnectedRouter history={history}>
     <App />
     </ConnectedRouter>
     </Provider>,
     document.getElementById('app')
  );

任何帮助都将不胜感激。如果您想了解更多细节,请让我知道

推荐答案

对我来说,我似乎必须删除您案例中的MemoryRouterConnectedRouter

另外,请注意,我的问题在我的App.test.js文件中,因此它可能不适用于OP的特定用例,但它可能会帮助那些通过Google来到这里的人。

有人能解释一下为什么这是可行的吗?

这是现在正在运行的代码:


<Provider store={store}>
     <App />
</Provider>

这是原始的非工作代码:


<Provider store={store}>
    <ConnectedRouter history={history}>
        <App />
    </ConnectedRouter>
</Provider>

这篇关于检查Render方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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