react example errors error did component catch boundaries javascript validation continuous-integration reactjs

javascript - example - react error handler



¿Forzar a ReactJS a lanzar errores reales cuando la validación de propTypes falla? (2)

A partir de esta respuesta , puede verificar el mensaje de error contra los mensajes de reacción típicos y solo lanzarlos. No es perfecto, pero tal vez está un paso más cerca de lo que estás buscando:

let warn = console.warn; console.warn = function(warning) { if (/(Invalid prop|Failed propType)/.test(warning)) { throw new Error(warning); } warn.apply(console, arguments); };

Actualmente, si la validación de propType falla, ReactJS usa console.warn para emitir una advertencia. Realmente, realmente quiero un error real en el modo dev, por lo que puede fallar nuestra compilación de integración continua, en lugar de simplemente imprimir un mensaje que podría perderse en la reproducción aleatoria.

Ya se ha debatido esto, por ejemplo, en esta solicitud de función , y esta pregunta relacionada describe el comportamiento actual como se esperaba. Está bien, pero personalmente quiero que arroje un error.

Suponiendo que ReactJS no proporciona un mejor soporte para esto en el corto plazo, ¿cuál es la mejor solución? Hasta ahora, lo mejor que he encontrado es anular console.warn para pruebas, por ejemplo

console.warn = function(msg) { throw new Error(msg); };

La desventaja de esto es que puede ser difícil de implementar en las pruebas, y no es específico de React, por lo que otras llamadas a console.warn también deben ser manejadas.


FlowType, presentado por Facebook ayer, suena exactamente como lo que buscas. Puede analizar su código, inferir tipos y lanzar errores en tiempo de compilación.

Específicamente incluye soporte para React y el argumento propTypes: http://flowtype.org/docs/react-example.html#property-use