Reactjs 使用ApolloClient从useContext钩子导入简单变量

Reactjs 使用ApolloClient从useContext钩子导入简单变量,reactjs,apollo-client,react-apollo,Reactjs,Apollo Client,React Apollo,我对反应比较陌生,似乎无法从上下文导入客户机变量。我有一个名为federation.tsx的文件,其中包含一些代码,我认为这应该是相关部分: const link = createHttpLink({ uri: process.env.URL, }); const useApolloClient = (user: User | null) => { const authLink = setContext((_, { headers }) => { return {

我对反应比较陌生,似乎无法从上下文导入
客户机
变量。我有一个名为federation.tsx的文件,其中包含一些代码,我认为这应该是相关部分:

const link = createHttpLink({
  uri: process.env.URL,
});

const useApolloClient = (user: User | null) => {
  const authLink = setContext((_, { headers }) => {
    return {
      headers: {
        ...headers,
        Authorization: user?.idToken || "",
      },
    };
  });
  return new ApolloClient({
    link: authLink.concat(link as any),
    cache: cache,
    name: "Test",
    version: process.env.ANOTHER_URL,
  });
};

export const FederationProvider: React.FC = ({children}) => {
  const [acc] = useContext(UserContext);
  const client = useApolloClient(acc);
  return <ApolloProvider client={client}>{children}</ApolloProvider>;
};
const-link=createHttpLink({
uri:process.env.URL,
});
const useAppolloClient=(用户:user | null)=>{
const authLink=setContext(({headers})=>{
返回{
标题:{
…标题,
授权:用户?.idToken | |“”,
},
};
});
返回新客户端({
链接:authLink.concat(如有链接),
缓存:缓存,
名称:“测试”,
版本:process.env.另一个_URL,
});
};
导出常量FederationProvider:React.FC=({children})=>{
const[acc]=useContext(UserContext);
const client=useAppollo client(acc);
返回{children};
};
和我的主应用程序文件,上下文提供程序包装所有相关内容:

function App() {
  return (
    <div className="App">
            <FederationProvider>
                  <Router>
                    <Routes/>
                  </Router>
            </FederationProvider>
    </div>
  );
}
函数应用程序(){
返回(
);
}
以及我尝试使用它的文件:

import React, {useContext, useEffect} from "react";
import {FederationProvider} from "..src";

export const someComponent(() => {
    const [client] = useContext(FederationProvider); // not working

    return (<>...</>)
})
import React,{useContext,useffect}来自“React”;
从“.src”导入{FederationProvider};
导出常量someComponent(()=>{
const[client]=useContext(FederationProvider);//不工作
返回(…)
})

有人能发现任何明显的我做得不对的地方吗?我不知道如何简单地导入客户机变量。

从文档中,它说使用
UseAppolloClient
钩子,通过
ApolloProvider
配置的客户机,如下所示:-

const client=useAppolloClient()

文件-