Javascript React js性能工具插件抛出;无法读取属性';计数';“未定义”的定义;
我对如何利用React的性能工具感到困惑。我目前的使用情况如下所示:Javascript React js性能工具插件抛出;无法读取属性';计数';“未定义”的定义;,javascript,performance,reactjs,Javascript,Performance,Reactjs,我对如何利用React的性能工具感到困惑。我目前的使用情况如下所示: var Perf = React.addons.Perf; Perf.start(); this.setState({ newState: newStateObject, }, function(){ Perf.printInclusive(); Perf.stop(); }); 这不会在页面上呈现任何内容,并且会脱口而出 Uncaught TypeError: Cannot read propert
var Perf = React.addons.Perf;
Perf.start();
this.setState({
newState: newStateObject,
}, function(){
Perf.printInclusive();
Perf.stop();
});
这不会在页面上呈现任何内容,并且会脱口而出
Uncaught TypeError: Cannot read property 'counts' of undefined
您的错误堆栈跟踪似乎来自其他原因 首先,您首先需要调用
Perf.stop()
,然后尝试调用printclusive()
。它不会在页面上打印任何内容,它应该在浏览器的控制台中弹出一个漂亮的表格
但是,尝试Perf工具最简单的方法是打开浏览器的控制台并手动在window.React.addons.Perf.start()中键入它代码>之后是您的操作,最后是window.React.addons.Perf.stop()
和window.React.addons.Perf.printExclusive()代码>或您正在使用的任何API调用。请参阅
它看起来像Perf.start()
只有在组件生命周期之外调用时才起作用。因此,在启动应用程序之前调用它,或者在触发试图监视的事件之前直接从浏览器控制台调用它。看起来Perf.start()应该放在渲染之外,所以我在渲染回调函数中添加了Perf.stop()
下面的代码,希望能有所帮助:)
Perf.start();
ReactDOM.render(
,
document.getElementById('app'),()=>{
性能停止();
var-measurements=Perf.getLastMeasurements();
console.table(Perf.getLastMeasurements());
性能(包括测量);
性能(测量);
性能(测量);
性能打印(测量);
}
);
尝试先调用Perf.stop()
,然后调用Perf.printclusive()
。你也应该在这里发布整个追踪。改变顺序没有什么区别。日志屏幕截图:您确定此问题是由性能触发的吗?在错误消息中,没有任何指示。是否在HTML中的某个位置输出counts
值?每个perf summary函数都调用measurements.count。度量值似乎未定义。您是否解决了此问题?我也看到了同样的事情。这是密码。希望他们改进这方面的文档。这不是一件容易找到的事情。为什么在我在控制台中调用'Perf.start()'后它会打印undefined?你能告诉我我做错了什么吗?当我在控制台中调用window.React.addons.Perf.start()时,我得到了一个错误,无法读取undefined(…)的属性'addons',谢谢大家的建议Hey@Davet,请确保您使用的是正确的React版本。开箱即用的React没有插件。检查并确保包括
。让我知道它是否有效?
Perf.start();
ReactDOM.render(
<App />,
document.getElementById('app'),()=>{
Perf.stop();
var measurements = Perf.getLastMeasurements();
console.table(Perf.getLastMeasurements());
Perf.printInclusive(measurements);
Perf.printExclusive(measurements);
Perf.printWasted(measurements);
Perf.printDOM(measurements);
}
);