2017-02-11 149 views
0

我使用的反应路由器V4为一个项目 这里是我的CDN阵营路由器V4错误“未捕获的ReferenceError:路由器没有定义”

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.4.2/react.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.4.2/react-dom.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-router/4.0.0-alpha.3/react-router.min.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.38/browser.min.js"></script> 

这里是我的代码

ReactDOM.render(

    <Router> 
    <Route path="/" component={LoginForm} /> 
     </Router> 

    ,document.getElementById('root')); 
</script> 

在登录表单代码看起来象

var LoginForm = React.createClass({ 
render: function() { 
return (
    <div> 
    <div id="postdiv"> 
<form id="customerForm" data-toggle="validator"> 
<div className="form-group"> 
<span className="label label-default">Login</span> 
... 

我收到此错误

Uncaught ReferenceError: Router is not defined 
at eval (eval at n.run (browser.min.js:3), <anonymous>:79:3) 
at Function.n.run (browser.min.js:3) 
at l (browser.min.js:3) 
at i (browser.min.js:3) 
+0

您需要的WebPack编译JSX,然后可以导入反应路由器是这样的:从“反应路由器”进口{}路由器; – Shota

+0

尝试使用React Router v4的最新版本https://cdnjs.cloudflare.com/ajax/libs/react-router/4.0.0-beta.5/react-router.min.js – Freez

回答

0

当你import react-routercdn你可以使用它像

<ReactRouter.Router> 
     <ReactRouter.Route path="/" component={LoginForm} /> 
    </ReactRouter.Router> 
从您的评论

而且好像你有或者没有出口的LoginForm组件或不正确

进口你需要做以下工作

var LoginForm = React.createClass({ 
render: function() { 
return (
    <div> 
    <div id="postdiv"> 
<form id="customerForm" data-toggle="validator"> 
<div className="form-group"> 
<span className="label label-default">Login</span> 
... 
)} 
}) 

export default LoginForm; 

铝所以你需要导入它像

<script src="path/to/loginFormFile"></script> 
+0

已经尝试过,但给出了我:“警告:React.createElement:类型是无效的 - 期望一个字符串(对于内置组件)或一个类/函数(对于复合组件),但得到:undefined。您可能忘记从文件中导出组件定义在“中。 –

+0

你是出口和导入登录表单组件 –

+0

我认为作为IAM不使用NPM,我不需要使用导入/导出,只是CDNs,我是吗? *对不起,我是新的reactjs:D * –