javascript - React Router 1.0.0-rc1 的基本实现显示错误

标签 javascript reactjs reactjs-flux react-router

尝试在我的项目中实现react-router 1.0.0-rc1,但出现以下错误:

1) 警告:React.createElement:类型不应为 null 或未定义。它应该是一个字符串(对于 DOM 元素)或一个 ReactClass(对于复合组件)。 2) 警告:只有函数或字符串可以挂载为 React 组件。 3)未捕获的类型错误:无法读取未定义的属性“toUpperCase”

routes.js 文件:

var React = require('react');
var ReactRouter = require('react-router');
var Router = ReactRouter.Router;
var Route = ReactRouter.Route;

var Home = require('./components/home.js');
var Jobs = require('./components/jobs.js');
var JobDetail = require('./components/jobDetail');
var App = require('./components/app.js');
var About = require('./components/about.js');
var NotFoundPage = require('./components/notfoundpage.js');

var routes = (<Router>
        <Route path="/" component={App}>
            <Route path="jobs" component={Jobs}>
                <Route path="jobs-detail" component={JobDetail} />
            </Route>
            <Route path="*" component={NotFoundPage} />
        </Route>
    </Router>);

module.exports = routes; 

app.js 文件:

var React = require('react');
var ReactRouter = require('react-router');
var Router = ReactRouter.Router;
var routes = require('./routes');

React.render(<Router>{routes}</Router>, document.body);

最佳答案

您有两批 Router 标记(一份在 app.js 中,另一份在 paths.js 中)。

从路由文件中删除 Router 标记,然后 app.js 可以如下所示:

React.render(<Router routes={routes}/>, document.body);

我找到了upgrade guide非常有用

关于javascript - React Router 1.0.0-rc1 的基本实现显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32730518/

相关文章:

javascript - 嵌套组件中的 forceUpdate

javascript - JSLint 提示重新定义未定义

javascript - 如何在按键的同时格式化输入值

reactjs - 不能在 getInitialProps 中使用 'fs'

javascript - 将数组作为属性传递

javascript - 在 "Reflux"中, Action 的作用是什么?

javascript - 媒体查询图像文件名随屏幕尺寸变化

javascript - 如何使用事件——当选项卡激活容器时会触发什么事件? (extjs 6.5)

reactjs - @storybook/addon-controls : howto not auto-generate control for a certain prop

javascript - React 组件 this.props 总是空的