Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

98
Visualizações
Acceda al estado de retransmisión sin pasar accesorios

Estoy aprendiendo Relay ahora y me preguntaba si hay una manera de acceder al estado sin tener que pasar accesorios. Pensé que Relay usaba React Context, sin embargo, en todos los ejemplos parecen estar usando accesorios para pasar el estado en lugar de acceder directamente a la tienda Context. ¿Es posible acceder al estado a través de Contexto? Si es así, ¿se considera una mala práctica?

Mi preocupación es que comenzaré a tener muchos accesorios que se transmitirán a los componentes. Además, es difícil transmitir accesorios a ciertos componentes de mi aplicación.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Es una mala práctica transmitir el estado de Relay usando context, redux o algún otro tipo de almacenamiento externo. Una de las características principales de la biblioteca es asegurarse de que todos los componentes que necesitan una pieza de datos obtengan esa pieza y ninguna otra pieza. Esta es una de las razones por las que Relay usa un compilador.

Con Relay, los desarrolladores usan un lenguaje declarativo llamado GraphQL para especificar qué datos necesita cada componente, pero no cómo obtenerlos.

[El compilador] permite razonar sobre los componentes de forma aislada, lo que hace que grandes clases de errores sean imposibles

Los subcomponentes deben usar fragmentos . Por ejemplo:

 // User.tsx interface UserProps { initialQueryRef: PreloadedQuery<UserQuery> } export default function User({ initialQueryRef }: UserProps) { const { user } = usePreloadedQuery( graphql` query UserQuery($uid: String!) { user(uid: $uid) { uid ...Avatar_fragment ...Biography_fragment # ... } } `, initialQueryRef ) return ( <div> <Avatar user={user} /> <Biography user={user} /> {/* ... */} </div> ) }
 // Biography.tsx interface BiographyProps { user: Biography_fragment$key // compiler generated type } export default function Biography({ user }: BiographyProps) { const { shortBio, longBio } = useFragment( graphql` fragment Biography_fragment on User { shortBio longBio } `, user ) // ... }

Relay se encargará de actualizar los componentes que usan fragmentos cada vez que los datos del fragmento cambien debido a mutaciones, suscripciones, etc. Nunca debería tener que pensar en administrar su estado mediante programación.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda