Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正在刷新使用ES6应用程序呈现React组件的页面_Javascript_Reactjs_Ecmascript 6_React Router - Fatal编程技术网

Javascript 正在刷新使用ES6应用程序呈现React组件的页面

Javascript 正在刷新使用ES6应用程序呈现React组件的页面,javascript,reactjs,ecmascript-6,react-router,Javascript,Reactjs,Ecmascript 6,React Router,我正在ES6中使用React Router和Alt构建React web应用程序,如下所示。“我的所有组件”都能正确呈现,但那些具有构造函数的组件在刷新浏览器页面时会中断。这里是错误 TypeError:未定义不是函数 在新轨道上(/Users/juancarlosfarah/Git/maestro/src/components/Track.js:14:17) 位于[object object].ReactCompositeComponentMixin.mountComponent(/Users

我正在ES6中使用React Router和Alt构建React web应用程序,如下所示。“我的所有组件”都能正确呈现,但那些具有构造函数的组件在刷新浏览器页面时会中断。这里是错误

TypeError:未定义不是函数
在新轨道上(/Users/juancarlosfarah/Git/maestro/src/components/Track.js:14:17)
位于[object object].ReactCompositeComponentMixin.mountComponent(/Users/juancarlosfarah/Git/maestro/node_modules/react/lib/ReactCompositeComponent.js:135:16)
在[object object].wrapper[as mountComponent](/Users/juancarlosfarah/Git/maestro/node_modules/react/lib/ReactPerf.js:70:21)
在Object.ReactReconciler.mountComponent(/Users/juancarlosfarah/Git/maestro/node_modules/react/lib/ReactReconciler.js:38:35)
位于[object object].ReactCompositeComponentMixin.mountComponent(/Users/juancarlosfarah/Git/maestro/node_modules/react/lib/ReactCompositeComponent.js:247:34)
在[object object].wrapper[as mountComponent](/Users/juancarlosfarah/Git/maestro/node_modules/react/lib/ReactPerf.js:70:21)
在Object.ReactReconciler.mountComponent(/Users/juancarlosfarah/Git/maestro/node_modules/react/lib/ReactReconciler.js:38:35)
位于[object object].ReactCompositeComponentMixin.mountComponent(/Users/juancarlosfarah/Git/maestro/node_modules/react/lib/ReactCompositeComponent.js:247:34)
在[object object].wrapper[as mountComponent](/Users/juancarlosfarah/Git/maestro/node_modules/react/lib/ReactPerf.js:70:21)
在Object.ReactReconciler.mountComponent(/Users/juancarlosfarah/Git/maestro/node_modules/react/lib/ReactReconciler.js:38:35)
位于ReactDOMComponent.ReactMultiChild.Mixin.mountChildren(/Users/juancarlosfarah/Git/maestro/node_modules/react/lib/ReactMultiChild.js:192:44)
在ReactDOMComponent.Mixin.\u createContentMarkup(/Users/juancarlosfarah/Git/maestro/node\u modules/react/lib/ReactDOMComponent.js:289:32)
在reactdomponent.Mixin.mountComponent(/Users/juancarlosfarah/Git/maestro/node_modules/react/lib/reactdomponent.js:199:12)
在Object.ReactReconciler.mountComponent(/Users/juancarlosfarah/Git/maestro/node_modules/react/lib/ReactReconciler.js:38:35)
位于[object object].ReactCompositeComponentMixin.mountComponent(/Users/juancarlosfarah/Git/maestro/node_modules/react/lib/ReactCompositeComponent.js:247:34)
在[object object].wrapper[as mountComponent](/Users/juancarlosfarah/Git/maestro/node_modules/react/lib/ReactPerf.js:70:21)
在Track.js的第14行中,构造函数的定义如下:

类跟踪扩展React.Component{
建造师(道具){
超级(道具);
调试(“构建跟踪…”);
this.state=TrackStore.getState();
this.handleTextChange=this.handleTextChange.bind(this);
this.handleSaveClick=this.handleSaveClick.bind(this);
this.handleUndoClick=this.handleUndoClick.bind(this);
this.renderButtons=this.renderButtons.bind(this);
this.onChange=this.onChange.bind(this);
}
...
}
在app.js中,我按如下方式呈现路由:

Router.run(路由、Router.HistoryLocation、函数(处理程序){
React.render(,document.getElementById('app'));
});
它们在routes.js中定义:

导出默认值(
);
在server.js中,使用Swig呈现页面

app.use(功能(请求、恢复){
Router.run(路由、请求路径、函数(处理程序){
让html=React.renderToString(React.createElement(Handler));
让page=swig.renderFile('views/index.html',{html:html});
res.send(第页);
});
});

即使我删除了
constructor
中的所有代码,只留下
console.log
语句,我在刷新浏览器时也会出错。如果没有构造器,则页面在刷新时呈现良好。

过了很长时间后,我发现了我遇到的问题。在
Track.js
中,我添加了一行代码来帮助我调试错误,它名为
console.debug()
(我现在已将其明确添加到问题中的代码中,但最初没有显示)。当客户端呈现
Track.js
时,这不是问题,因为Chrome中的控制台可以运行
console.debug()
。但是,当直接访问URL时,页面将由服务器呈现,服务器不支持
console.debug()
。因此,应用程序将中断,并显示隐藏的错误。删除该行或将其更改为
console.log()
修复了该问题