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()代码>
文件-