Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

123
Vistas
Cómo llamar y devolver datos desde un enlace personalizado solo si una condición es válida

En mi aplicación React, necesito devolver algunos datos y funciones desde un gancho personalizado. Los datos de enlace solo deben devolverse si una condición es válida.

El gancho personalizado se usa así:

 const { conversation, currentMember, handleAddMessage, handleResolveConversation, } = useConversation(consentee);

La idea es que en pseudocódigo:

 if (valid_condition) // give back the things from the hook const { conversation, => DATA currentMember, => DATA handleAddMessage, => FUNCTION handleResolveConversation, => FUNCTION } = useConversation(consented); else give back the CONSENTEE and the rest should be NULL

El problema es que necesito llamar a este enlace si se cumple la condición válida y no estoy seguro de cómo hacerlo y devolver lo que necesito usar.

El segundo problema es para la conversation y currentMemebr , que no necesitan devolver nada para no activar otras cosas relacionadas, pero tengo ese parámetro de consentee que necesito devolver solo como datos si no se llama al gancho.

Por favor, pregunte en los comentarios si confunde demasiado mi pregunta :)

Como referencia, estoy agregando el gancho personalizado.

 const useConversation = consentee => { const { user } = useAuth(); const { joinConversation, joinedConversation } = useJoinConversation(); const resolveConversation = useResolveConversation(); const addMessage = useAddMessage(); const conversation = useGetConversation(joinedConversation?.conversation?.id); const currentMember = useMemo(() => joinedConversation?.member, [ joinedConversation, ]); useEffect(() => { if (consentee) { const input = { originId: consentee?.id, originType: conversationOriginTypes.consentee, memberId: user.id, name: `${user.firstName} ${user.lastName}`, memberType: messageAuthorTypes.user, }; joinConversation(input); } }, [consentee, joinConversation, user]); const handleAddMessage = useCallback( async message => { const content = trimWhitespace(message); const input = { conversationId: joinedConversation?.conversation?.id, memberId: currentMember.id, content, }; await addMessage(input); }, [joinedConversation, addMessage, currentMember], ); const handleResolveConversation = useCallback(async () => { await resolveConversation(joinedConversation?.conversation?.id); }, [resolveConversation, joinedConversation]); return { conversation, currentMember, handleAddMessage, handleResolveConversation, }; }; export default useConversation;
about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda