質問
React-Router ReactJSの操作を知っていますか?
ブラウザコンソールにエラーを投げます。私のコードは以下の通りです。私はnpm react-router
をインストールし、基本サーバーを使用して、Reactアプリケーションに問題がないpython -m SimpleHTTPServer 3000
。
コンソールのエラーはUncaught Error: Parse Error: Line 18: Unexpected token .
<this.props.activeRouteHandler/>
私は私のApp.jsがReact-Routerモジュールを見つけることができないと思いますが、必要なjsの問題があるかもしれません(私は自分のインデックスのCDNから含めます)???
Directories
/index.html
/scripts/app.js
/node_modules/react-router
.
index.html
<!DOCTYPE html>
<html>
<head>
<title>Hello React</title>
<script src="http://fb.me/react-0.10.0.js"></script>
<script src="http://fb.me/JSXTransformer-0.10.0.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.14/require.js"></script>
</head>
<body>
<div id="content"></div>
<script type="text/jsx" src="scripts/app.js"></script>
</body>
</html>
.
app.js
/** @jsx React.DOM */
var Routes = require('../node_modules/react-router/modules/main').Routes;
var Route = require('../node_modules/react-router/modules/main').Route;
var Link = require('../node_modules/react-router/modules/main').Link;
var About = React.createClass({
render: function() {
return <h2>About</h2>;
}
});
var Users = React.createClass({
render: function() {
return (
<div>
<h2>Users</h2>
<this.props.activeRouteHandler/>
</div>
);
}
});
var User = React.createClass({
render: function() {
return <div>{this.props.params.userId}</div>
}
});
var App = React.createClass({
render: function() {
return (
<div>
<ul>
<li><Link to="about">About</Link></li>
<li><Link to="users">Users</Link></li>
<li><Link to="user" userId="123">User 123</Link></li>
</ul>
<this.props.activeRouteHandler/>
</div>
);
}
});
React.renderComponent((
<Routes>
<Route handler={App}>
<Route name="about" handler={About}/>
<Route name="users" handler={Users}>
<Route name="user" path="/user/:userId" handler={User}/>
</Route>
</Route>
</Routes>
), document.body);
. 解決
反応ルータ0.5にアップグレードしたときに同じ問題があり、反応0.11を使用しても同じ問題がありました。{this.props.ActiverOuteHandler()}に変更され、作業を開始しました。私はこれを「Todo」としてマークしてください。
あなたが何をしてもあきらめないでください。それは素晴らしい働きます!私たちは前にバックボーンルーターを使用していました、そしてこのReactルーターは私たちの古いセットアップと比較してそのような祝福です!
あなたのディレクトリセットアップでも、「必要なもの( 'React')」を変更して、Browserifyを使用してアプリと必要な依存関係を単一のJSアセットに使用することができます。他のすべてがよさそうです。
他のヒント
JSXのNAX空間のサポートを反応0.11.0に導入した。あなたは0.10.0を持っています。0.11.0を使用するようにスクリプトタグを変更します。
<script src="http://fb.me/react-0.11.0.js"></script>
<script src="http://fb.me/JSXTransformer-0.11.0.js"></script>
.
0.10.0以下では、これを行ったことがあります。
var activeRouteHandler = this.props.activeRouteHandler;
return <activeRouteHandler />
.