【发布时间】:2017-05-16 18:35:04
【问题描述】:
我使用这个 jsx 脚本在我的 index.html 文件中呈现应用程序组件。
'use strict';
var React = require('react');
var ReactDOM = require('react-dom');
var Router = require ('react-router').Router;
var Route = require ('react-router').Route;
var IndexRoute = require ('react-router').IndexRoute;
var browserHistory = require ('react-router').hashHistory;
require('./css/style.css');
var LandingComponent = require('./components/landing.jsx');
var LoginComponent = require('./components/login.jsx');
var SignupComponent = require('./components/signup.jsx');
var HomeComponent = require('./components/home.jsx');
console.log("this is app.js");
var App = React.createClass({
render: function () {
return (
<Router history={browserHistory}>
<Route path={'/'} component={LoginComponent}></Route>
<Route path={'/signup'} component={SignupComponent}></Route>
<Route path={'/home'} component={HomeComponent}></Route>
</Router>
);
}
});
ReactDOM.render(<App />, document.getElementById('app'));
像渲染一样直接渲染组件
ReactDOM.render(<LoginComponent />, document.getElementById('app'));
工作正常。但是路由器根本什么都不渲染。
我用
browserify -g reactify app.jsx > bundle.js
转换和捆绑我的组件和依赖项,因此这就是我的 index.html 文件:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>React App</title>
</head>
<body>
<div id="app"></div>
<script src="bundle.js" type="text/javascript"></script>
</body>
</html>
React Router 版本是 4.0.0
最后要说的是,我通过 express 服务于 index.html 和 app.jsx 文件的文件夹:
var express = Express();
// Serve static assets from the /public folder on default
express.use(Express.static(Path.join(__dirname, '/public')));
var port = process.env.PORT || 1337,
httpServer = require('http').createServer(express);
httpServer.listen(port, () => {
console.log('parse-server running on port ' + port + '.');
});
任何想法为什么没有渲染? - 我有点绝望
【问题讨论】:
标签: reactjs react-router browserify