Javascript React路由器与React v0.14.3

Javascript React路由器与React v0.14.3,javascript,reactjs,react-router,react-jsx,react-routing,Javascript,Reactjs,React Router,React Jsx,React Routing,我正在使用React和Material UI创建一个应用程序,我还包括React路由器。但是当我运行我的应用程序时,我得到了以下错误(未捕获类型错误:(0,_reactDom.reactDom)不是一个函数 我使用的是React v0.14.3和React路由器v1.0.2 我在另一个文件中编写了BodyComponent,并将其导入main.js 我尝试了ReactDOM.render,但出现以下错误 未捕获错误:不变冲突:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但

我正在使用React和Material UI创建一个应用程序,我还包括React路由器。但是当我运行我的应用程序时,我得到了以下错误(未捕获类型错误:(0,_reactDom.reactDom)不是一个函数

我使用的是React v0.14.3和React路由器v1.0.2

我在另一个文件中编写了BodyComponent,并将其导入main.js

我尝试了ReactDOM.render,但出现以下错误

未捕获错误:不变冲突:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但得到:对象。

我为同样的目的创作了小提琴:

下面是我的代码:(更新代码)

ReactDOM.render(…)


您刚刚错过了渲染调用

我想您忘了调用
渲染
方法

ReactDOM.render((
    <Router history={history}>
        <Route path="/" handler={Body} />
    </Router>
), document.getElementById('app')) 
ReactDOM.render((
),document.getElementById('app'))

我在这里看到两个问题:

  • 正如前面的答案所建议的,您需要一个
    ReactDOM.render(…)
    调用
  • 您看到的错误是指导入未按您引用的方式导出的内容。确保正确导出和导入组件,即在组件文件中,导出
    BodyComponent
    ,将其作为
    BodyComponent
    导入并使用。希望能帮上忙
    您有错误的导入:

    import  Router  from 'react-router';
    import Route from 'react-router';
    
    一定是

    import { Router, Route }  from 'react-router';
    

    当我使用时,您忘记了呈现方法
    ReactDom.render()

    嘿。呈现我得到以下错误:未捕获错误:不变冲突:元素类型无效:需要一个字符串(对于内置组件)或一个类/函数(对于复合组件),但得到了:object。看起来错误在呈现路径的后面,我会重新检查文件中的React Router,然后拆下所有组件。让他们只渲染一个跨度,如果可行的话,然后添加回您的组件。有更好的方法跟踪渲染图,但这是概念上最简单的方法。嘿,当我这样做时,我会出现以下错误(在我的问题中忘记提到):未捕获错误:不变冲突:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件)但是得到:object。你试过用
    组件
    替换
    处理程序
    吗?@juandermarco你能告诉我怎么做吗?我是第一次使用react和yeoman。已更改为component,但仍然遇到相同的问题:未捕获错误:不变冲突:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但得到:object.1。我正在使用.render。2) BodyComponent已正确导出。没有路由器,我可以在浏览器中显示我的身体组件。你可以浏览我共享的JSFIDLE。你能把你的
    BodyComponent.jsx
    中的代码作为你问题的一部分,这样我们就可以看到整个画面了吗?它是如何出口的?很有趣。您使用的是什么
    react路由器
    版本?因为您使用的是
    处理程序
    ,而不是
    组件
    ,所以它看起来像是比1.0旧的东西。在这种情况下,您将需要类似于从“react Router”导入路由器的
    import Router;从“反应路由器”导入{Route}(模块在1.0之前的结构不同)我使用的是最新的react路由器,但我使用的方式与他们在github页面中提到的相同。您需要从“react router”导入{router,Route}与v1.0。
    
    ReactDOM.render((
        <Router history={history}>
            <Route path="/" handler={Body} />
        </Router>
    ), document.getElementById('app')) 
    
    import  Router  from 'react-router';
    import Route from 'react-router';
    
    import { Router, Route }  from 'react-router';