【发布时间】:2015-06-25 10:37:41
【问题描述】:
我正在尝试为我的 react 应用程序编写路由器组件。我正在创建新的反应类并在 componentDidMount 方法中定义一些路由。 这是完整的方法
componentDidMount: function () {
var me = this;
router.get('/', function(req){
me.setState({
component: <MainPage />
});
});
router.get('/realty', function(req){
me.setState({
component: <RealtyPage />
});
});
router.get('/realty/:id', function(req){
me.setState({
component: <RealtyPage id={req.params.id} />
});
});
},
当我去 '/' 或 '/realty' 时,一切正常。但是,当我去 'realty/new' 时,我遇到了错误 Uncaught SyntaxError: Unexpected token
UPD:这是路由器组件的完整代码。现在它使用 page.js 进行路由,我看到了同样的错误
var React = require('react');
var page = require('page');
var MainPage = require('../components/MainPage');
var RealtyPage = require('../components/RealtyPage');
var Router = React.createClass({
getInitialState: function(){
return {
component: <RealtyPage />
}
},
componentDidMount: function () {
var me = this;
page('/', function (ctx) {
me.setState({
component: <MainPage />
});
});
page('/realty', function (ctx) {
me.setState({
component: <RealtyPage />
});
});
page.start();
},
render: function(){
return this.state.component
}
});
module.exports = Router;
【问题讨论】:
-
我不确定您为什么要将服务器端节点代码与客户端 React 代码耦合...
-
我正在使用 grapnel 库进行客户端路由。由 var router = new Grapnel() 创建的对象路由器。我正在尝试使用其他库,但结果仍然相同。
-
哦,好吧,那我的错,我以为是那个代码中的快速路由器。您可以尝试链接您的完整源代码吗?错误似乎发生在第 1 行。可能是您的 HTML 脚本中缺少 JSXTransformer。
-
我正在使用 gulp 和 browserify + reactify。仅当我转到包含“/”的地址时才会发生错误。我认为代码中的某个地方存在问题,它与 Histor API 一起使用,并且所有库都使用相同的代码。这是来自 Chome 的错误屏幕。 Error screen
-
发布完整的
app.js,以便我们帮助找出错误的来源
标签: javascript reactjs html5-history