Kraft, ReactJS zu werfen echte Fehler, wenn propTypes Validierung fehlschlägt?
Derzeit, wenn propType
Validierung fehlschlägt, ReactJS verwendet console.warn
um eine Warnung ausgeben. Ich wirklich, wirklich wollen, ein echter Fehler in der dev-Modus, also kann es nicht unser continuous integration aufbauen, anstatt nur drucken einer Nachricht, die möglicherweise verloren gehen in der shuffle.
Gibt es schon Diskussion, z.B. in dieser feature-request, und diese stellt sich die Frage, beschreibt das aktuelle Verhalten als erwartet. Das ist in Ordnung, aber ich persönlich wollen, dass es ein Fehler ausgelöst.
Unter der Annahme, dass ReactJS nicht bieten eine bessere Unterstützung für diese in absehbarer Zeit, was ist der beste workaround? Bisher die beste, die ich mir ausgedacht habe ist das überschreiben console.warn
für tests, z.B.
console.warn = function(msg) {
throw new Error(msg);
};
Der Nachteil ist, es kann schwierig sein, zu implementieren, tests, und es ist nicht Reagieren-spezifisch, so dass andere console.warn
fordert ebenfalls behandelt werden müssen.
- eine Vermutung von mir wäre, um einen grunt / gulp-plugin zu ersetzen, console.warnen mit .Fehler?
- Haben Sie irgendwelche Neuigkeiten dazu? Ich will auch, dass die Validierung einen Fehler auslösen.
- Ich ging mit übergeordneten
console.warn
in der Entwicklung, mit eine schwarze Liste von regex-mustern auf Fehler überprüfen. Es war nicht elegant, aber funktioniert zum scheitern meine versuche. - Ich würde gerne das es irgendwo eine Einstellung, die es ermöglicht, exception werfen für proptype Validierung. Naheliegendste für mich wäre das ein feature Reagieren die DevTools.
- gibt es ein update auf dieser? Ich wirklich brauchen, es zu
- Die zwei Antworten hier sind die einzigen, die ich gefunden habe: Flow oder override console-Methoden in der test-setup. Weder ist eine perfekte Lösung, es sei denn, du bist mit Flow sowieso.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vom diese Antwort, Sie können überprüfen, dass die Fehlermeldung gegen typische reagieren Nachrichten und nur werfen, für jene. Nicht perfekt, aber vielleicht einen Schritt näher an das, was Sie suchen:
FlowType, eingeführt durch Facebook gestern klingt wie genau das, was Sie suchen. Sie analysieren Ihren code, abzuleiten Arten, und werfen Fehler zur Kompilierzeit.
Dazu gehören insbesondere die Unterstützung für Reagieren und die propTypes argument: http://flowtype.org/docs/react-example.html#property-use