En mi función useHook, estoy devolviendo dos parámetros.

import {useEffect, useState} from 'react'; export function useKeyAnnounce( ) { .... return [isPressed, setIsPressed]; } 

cuando se usa en otro componente funcional.

 const [ isPressedLocal, setIsPressedLocal ] = useKeyAnnounce(); 

digamos que solo uso setIsPressed y nunca uso isPressed , ¿cómo devuelvo setIsPressedLocal ?

No hay nada intrínsecamente malo con:

 const [ isPressedLocal, setIsPressedLocal ] = useKeyAnnounce(); 

Pero muchos proyectos consideran una mala práctica tener variables definidas pero no utilizadas. (Esto es forzado por muchos linters, y algunas veces por el compilador de mecanografía). Una convención común es que las variables no utilizadas están precedidas por un guión bajo. (Puede que necesite configurar su linter para permitir esta convención) Así que escribiría esto como:

 const [ _isPressedLocal, setIsPressedLocal ] = useKeyAnnounce(); 

También verá que _ se usa para denotar una variable no utilizada:

 const [_, setIsPressedLocal] = useKeyAnnounce(); 

o incluso simplemente omitido con una coma inicial:

 const [, setIsPressedLocal] = useKeyAnnounce(); 

Pero creo que la versión con el nombre completo es más clara.


Técnicamente podrías escribir esto como

 const setIsPressedLocal = useKeyAnnounce()[1]; 

pero creo que esto es bastante poco idiomático. (Y lo más molesto de refactorizar si eventualmente lo necesitas es isPressedLocal )

digamos que solo uso setIsPressed y nunca uso isPressed , ¿cómo devuelvo setIsPressedLocal ?

Solo debes reflexionar que no lo usas:

 const [, setIsPressedLocal] = useKeyAnnounce(); 

Pero, solo puede devolver un valor dependiendo de la condición:

 export function useKeyAnnounce({ isPressedUsed }) { ... return isPressedUsed ? [setIsPressed] : [isPressed, setIsPressed]; } 

Puede ignorar los valores al desestructurar las matrices agregando comas sin nombres de variables:

 const [, setIsPressedLocal] = useKeyAnnounce(); 

Esto omitirá el índice 0 y asignará el índice 1 a setIsPressedLocal .

Ejemplo:

 const arr = [1, 2, 3] const [,, v] = arr console.log(v)