2015-03-03 3 views
10

Probieren Sie eine sehr einfache Sache, und bekomme Fehler "TypeError: Kann Eigenschaft 'counts' von undefined nicht lesen"Wie verwenden wir die Facebook React Addons Perf-Klasse?

Hier ist der Hallo Welt Beispielcode.

https://gist.github.com/joshuacalloway/ae5b184c485956314d1c

+0

habe ich dies funktioniert durch die JavaScript-Konsole. Auch habe ich bemerkt, dass React.addons.Perf.printWasted() diesen Fehler auslöst, wenn noch keine Messungen gesammelt wurden. – jcalloway

+0

Wenn Sie Ihr eigenes Problem gelöst haben, sollten Sie eine Antwort auf Ihre Frage posten und sie akzeptieren, damit andere es leicht wissen dass es gelöst wurde. –

+0

Ich denke, es ist ein Problem mit React.addons.Perf Klasse. Ab 0,13 warf die Klasse diesen TypeError, wenn keine Messungen vorgenommen wurden. Ein "Human Readable" wäre gewesen, eine Warnmeldung der Art anzuzeigen, dass "noch keine Messungen verfügbar sind". – jcalloway

Antwort

5

ich die gleichen Fehler Perf.start() in der Funktion macht Aufruf, wo ich Profilierung starten wollte, schien ein Timing-Problem zu sein, so dass ich die Aufnahme perf gerade erst begonnen, bevor ich etwas gemacht und meine Druckfunktionen rief dann, wenn ich, was los war (Pseudo-Code) sehen wollte:

in app.js:

//var React = require('react'); // DONOTCHECKIN 
var React = require('react/addons'); 
// ... 

function run() { 
    // DONOTCHECKIN 
    window.Perf = React.addons.Perf; // save for later console calls 
    React.addons.Perf.start(); 
    // ... 

dann kann in der Konsole ich rufe:

Perf.printWasted() 

Hoffe, das hilft.

+0

Können Sie einen Gist/Github-Link für die Profilerstellung von reactjs posten? Es wäre hilfreich für mich. – Sathish

17

Ich weiß, diese Frage ist alt - aber im Falle someones Rückgang hier hier (wie ich) es ist, wie man es heutzutage tun sollte ..

Sie das Addon reagieren importieren möchten Sie separat

import Perf from 'react-addons-perf' 

und dann können Sie damit machen, was Sie wollen .. Beispiel: Weisen Sie es dem Fensterobjekt zu, damit Sie es in der Konsole verwenden können.

window.Perf = Perf 
+2

Das hat mir geholfen: 'componentDidMount() { window.Perf = Perf; } ' – escapedcat

+0

Dies funktioniert nicht für mich. Ich mache genau das und mein Objekt hat nur: {enableMeasure: false, injection: Object} und sonst nichts. Ich kann es beginnen oder stoppen. Irgendwelche Ideen? –

+0

@jamesemanon ich bekomme genau den gleichen Fehler, können Sie mich wissen lassen, wenn Sie es herausfinden, n ich werde auch tun – Jbarget

Verwandte Themen