2

在 react(nextjs) 应用程序中,我statsig-react用来切换 mastergraphql 端点(urls)。现在我在将 statsig 与 apollo 连接时遇到了一个问题。

我的 app.js 就像,

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>
)

在 apollo.js 中,我正在改变uri

import { useGate } from 'statsig-react'

const statsigFeatureOn = useGate('newurl').value

const withAuth = createHttpLink({
  uri: statsigFeatureOn ? statsigPath : oldPath,
  fetch: awsGraphqlFetch,
})

在这里,我和往常statsigFeatureOn一样false。如果我检查useGate包装在下面的任何其他组件中的值,StatsigProvider就会得到true值(必需的输出)。

如果我以正常方式将 ApolloProvider 包装在 StatsigProvider 下,将无法获得所需的输出。我尝试了几种方法并得到了不同类型的错误和输出。

如何true在初始加载时在 apollo.js 中获取价值?

4

1 回答 1

1

ApolloProvider和相关的东西移动到一个新组件中,并在StatsigProviderin 中返回该新组件app.js。在新组件中获取并将useGate值传递给useApollo钩子。

于 2021-09-14T12:50:30.907 回答