nra*_*itz 33 javascript validation continuous-integration reactjs
目前,如果propType验证失败,ReactJS将console.warn用于发出警告.我真的非常希望在开发模式下出现真正的错误,因此它可能会使我们的持续集成构建失败,而不仅仅是打印可能在shuffle中丢失的消息.
已经讨论过这个问题,例如在此功能请求中,此相关问题描述了当前的行为.那没关系,但我个人希望它抛出一个错误.
假设ReactJS不会很快为此提供更好的支持,那么最好的解决方法是什么?到目前为止,我提出的最好的方法是覆盖console.warn测试,例如
console.warn = function(msg) {
throw new Error(msg);
};
Run Code Online (Sandbox Code Playgroud)
这样做的缺点是,在测试中实现起来可能很棘手,并且它不是特定于React的,因此console.warn还需要处理其他调用.
从这个答案中,您可以检查针对典型响应消息的错误消息,并且只针对这些消息.不完美,但可能更接近你正在寻找的东西:
let warn = console.warn;
console.warn = function(warning) {
if (/(Invalid prop|Failed propType)/.test(warning)) {
throw new Error(warning);
}
warn.apply(console, arguments);
};
Run Code Online (Sandbox Code Playgroud)