2016-01-20 85 views
2

我有一个像home.js:反应路由器需要没有定义

import React from 'react' 
    import { render } from 'react-dom' 
    import { Router, Route, Link, browserHistory } from 'react-router' 
    import Login from 'login.js'; 

var App = React.createClass({ 
    render() { 
    return (
     <div className="nav"> 
     <Link to="app">Home</Link> 
     <Link to="login">Login</Link> 

     {/* this is the importTant part */} 
     <RouteHandler/> 
     </div> 
    ); 
    } 
}); 

render(( 
    <Route name="app" path="/" handler={App}> 
    <Route name="login" path="/login" handler={Login}/> 
    </Route> 
), document.body) 

和login.js,如:

import React from 'react'; 

var Login = React.createClass({ 

    render() { 
    return(<div>Welcome to login</div>); 
    } 
}); 

export default Login; 

和我的Home.html:

<html lang="en"> 
    <head> 
    <meta charset="utf-8"> 
    <title>New React App</title> 
    </head> 
    <body> 
    <section id="react"></section> 
    <script src="../build/react.js"></script> 
    <script src="../build/react.min.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.24/browser.min.js"></script> 
    <script src="https://npmcdn.com/react-router/umd/ReactRouter.min.js"></script> 
    <script type="text/babel" src="js/home.js"></script> 
    </body> 
</html> 

当我跑它给我Uncaught exception require is not defined

需要帮助..

+0

你使用通过node.js? –

+0

我正在从npm – aryan

+1

进行安装,您必须使用gulp或webpack来创建捆绑包,然后只加载bundle.js,不需要在您的html文件中加载反应,react-router –

回答

-1

您是否使用jQuery或任何框架?一些JavaScript解释器使用load代替require

你需要找到如何将你的文件login.js

2

getting started引导

我们建议您使用一个CommonJS的模块系统,如browserify或作出反应webpack

即使您将文件另存为.js,也需要将它们编译到一个包中,以便这些类可以互相访问。

我可能值得一看React的一些样板和入门套件,this is a good example

+0

我相信这个例子对于用webpack开始的人来说太复杂了。我会建议查看[webpack教程](https://webpack.js.org/get-started/) – marcelocra