En la aplicación react (nextjs), estoy usando statsig-react para cambiar el punto final mastergraphql (url). Ahora estoy enfrentando un problema al conectar statsig con apollo.
Mi app.js es como,
const apollo = useApollo(pageProps) const AddStatsig = () => { <StatsigProvider sdkKey={`${env.statsigKey}`} options={{ environment: { tier: env.environment } }} waitForInitialization={true} > <Component {...pageProps} /> </StatsigProvider> } return ( <ApolloProvider client={apollo}> ... <AddStatsig /> ... </ApolloProvider> ) En apollo.js, estoy cambiando uri como,
import { useGate } from 'statsig-react' const statsigFeatureOn = useGate('newurl').value const withAuth = createHttpLink({ uri: statsigFeatureOn ? statsigPath : oldPath, fetch: awsGraphqlFetch, }) Aquí, statsigFeatureOn como false siempre. Y si verifico el valor de useGate en cualquier otro componente que esté incluido en StatsigProvider , obtendrá el valor true (salida requerida).
Si envuelvo un ApolloProvider bajo StatsigProvider de manera normal, no obtendré el resultado deseado. Intenté algunas formas y obtuve los diferentes tipos de errores y resultados.
¿Cómo puedo obtener el valor true dentro de apollo.js en la carga inicial?
Mueva el ApolloProvider y las cosas relacionadas a un nuevo componente y devuelva ese nuevo componente dentro del StatsigProvider en app.js En el nuevo componente, obtenga y pase el valor useGate al gancho useApollo .