現在、propType
検証が失敗した場合、ReactJSは_console.warn
_を使用して警告を発行します。開発モードで実際のエラーが本当に欲しいので、シャッフルで失われる可能性のあるメッセージを出力するだけでなく、継続的な統合ビルドに失敗する可能性があります。
これについてはすでに議論されています。 in この機能要求 、およびこの 関連する質問 は、期待どおりの現在の動作を説明しています。それは問題ありませんが、個人的にエラーをスローしたいです。
ReactJSがすぐにこれに対するより良いサポートを提供しないと仮定して、最善の回避策は何ですか?これまでのところ、私が思いついた最善の方法は、テストのために_console.warn
_をオーバーライドすることです。
_console.warn = function(msg) {
throw new Error(msg);
};
_
この欠点は、テストで実装するのが難しい場合があり、React固有ではないため、他の_console.warn
_呼び出しも処理する必要があることです。
this answer から、エラーメッセージを典型的な反応メッセージと照合して、それらに対してのみスローできます。完璧ではありませんが、探しているものに近いかもしれません。
let warn = console.warn;
console.warn = function(warning) {
if (/(Invalid prop|Failed propType)/.test(warning)) {
throw new Error(warning);
}
warn.apply(console, arguments);
};
昨日Facebookによって導入されたFlowTypeは、まさにあなたが求めているもののように聞こえます。コードを分析し、型を推測し、コンパイル時にエラーをスローできます。
特に、ReactおよびpropTypes引数のサポートが含まれています: http://flowtype.org/docs/react-example.html#property-use