Quiero usar la declaración if else en el operador ternario
if (open) { setOpen(false) } else { setOpen(true) navigator.clipboard.writeText(link) }No hay problema en "si" no puedo averiguar cómo convertir más a ternario. Como algo el siguiente código:
open ? setOpen(false) : setOpen(true) ; navigator.clipboard.writeText(link)Algo como esto o hay otro método para hacer el trabajo?
No.
Está intentando utilizar el operador condicional ternario por el motivo equivocado. No es un reemplazo directo para ningún bloque if .
El operador condicional ternario es una expresión . Se resuelve en un valor, que se puede utilizar en cualquier otro lugar. Por ejemplo:
let x = someCondition ? 1 : 0; La expresión se resuelve en un valor, ya sea 1 o 0 , y ese valor se usa en una instrucción de asignación.
El código que estás mostrando no es una expresión . Lo que tiene es una serie de declaraciones , ejecutadas condicionalmente en función de algún valor. Un bloque if es una estructura para ejecutar sentencias condicionalmente.
El código que tienes ahora es correcto.
Sí, es posible escribir varias declaraciones en casos else if no:
El formato es:
condition ? codeLine1 : ( codeLine2 , codeLine3 )
Lo que hace su declaración como:
open ? setOpen(false) : (setOpen(true), navigator.clipboard.writeText(link));Combine varias declaraciones entre paréntesis separadas por comas entre cada línea.
Dicho esto, se recomienda utilizar la forma antigua de declaración if-else si hay varias declaraciones involucradas.
Seleccione la respuesta si le ayuda y avíseme si tiene alguna pregunta.