Tengo la siguiente función en mi reacción js de la siguiente manera, que es bastante simple y devuelve diferentes valores según las condiciones.
const checkStatus =(device:any)=> { if(device?.patient){ return "disconnect" } else if(!device.patient && device?.status === "DEACTIVATED") { return "delete" } else { return "enable" } }
el código anterior arroja el error "No se devolvió nada del procesamiento. Esto generalmente significa que falta una declaración de devolución. O, para no procesar nada, devuelva nulo". . ¿alguien puede ayudarme a entender lo que está mal aquí?
Está utilizando el operador ternario de una manera extraña que podría causar que js no funcione como se esperaba. Intente eliminarlo (tenga en cuenta que su código puede ejecutarse de manera diferente a la prevista).
const checkStatus = (device:any) => { if (device.patient) { return "disconnect"; } else if (!device.patient && device.status === "DEACTIVATED") { return "delete"; } else { return "enable"; } }
No queda muy claro a partir de la pregunta dónde se llama a esta función. Pero se pueden detectar algunos problemas que deberían conducir a errores. Parece que lo que está sucediendo es que se llama a la función en un componente de reacción, y arroja una excepción que hace que el componente de reacción no alcance la declaración de retorno de su procesamiento, lo que genera la excepción: "No se devolvió nada del procesamiento. Esto generalmente significa un retorno falta la instrucción. O, para que no quede nada, devuelva nulo".
3 problemas se pueden ver en esta función:
1- no está comprobando si el device
de argumento es nulo. Si es nulo, device.patient
generará una excepción.
2- estás usando el operador ternario de una manera extraña. Si es para satisfacer su pelusa, está mal. Esto se puede evitar agregando una cláusula de protección al comienzo de la función: if (!device) return null;
. ts analizará el flujo de control y no requerirá que agregue el operador ternario.
3- si se usa any
con mecanografiado, hay algún problema con la función. ¿Por qué debería esperar any
argumento? ¿Por qué no un objeto que tenga patient
y status
como miembros?