【发布时间】:2017-04-07 11:17:27
【问题描述】:
Resume:我需要在没有 wepback 或类似工具的情况下运行 React Router。直接来自 CDN 链接,但我遇到了一些 require.js 错误。
我开始使用 React 构建我的第一个应用程序,但我正在努力使用 React Router。
HTML:
<body>
<div id="container"></div>
<script src="https://unpkg.com/react@15/dist/react.js"></script>
<script src="https://unpkg.com/react-dom@15/dist/react-dom.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.23/browser.js"></script>
<script src="https://npmcdn.com/react-router@2.4.0/umd/ReactRouter.js"></script>
<script type="text/babel" src="assets/scripts/03_templates/app.js" charset="utf-8"></script>
</body>
JS:
var { Router, Route, IndexRoute, hashHistory, IndexLink, Link, browserHistory } = ReactRouter;
//some classes
ReactDOM.render((
<Router history={hashHistory}>
<Route path="/" component={Window}>
<IndexRoute component={InitialPage}/>
<Route path="register" component={Register} />
<Route path="search" component={Search} />
</Route>
</Router>
), document.getElementById("container"));
一切都运行良好,但我在控制台上得到了这个:
react.js:3639 警告:您正在手动调用 React.PropTypes
IndexRoute上的getComponent属性的验证函数。这 已弃用,将无法在下一个主要产品中使用 版本。由于第三方 PropTypes,您可能会看到此警告 图书馆。
所以,我想我的 react 路由器是旧版本。我把链接改成了
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-router/4.0.0-0/react-router.js"></script>
警告:React.createElement:类型不应为 null、未定义、 布尔值或数字。它应该是一个字符串(对于 DOM 元素)或 ReactClass(用于复合组件)。
我搜索了一下,似乎问题出在第 1 行。所以我改变了这个:
var { Router, Route, IndexRoute, hashHistory, IndexLink, Link, browserHistory } = ReactRouter;
到这里:
import { Router, Route, IndexRoute, hashHistory, IndexLink, Link, browserHistory } from 'react-router';
现在我遇到了这个问题:
app.js:2 Uncaught ReferenceError: require is not defined
我搜索了 require.js,尝试了一些东西,但没有解决我的问题。我错过了什么?我需要在没有 webpack 或类似工具的情况下运行它。
谢谢
【问题讨论】:
标签: javascript reactjs requirejs react-router cdn