我有一些组件正在执行api文件中的某些功能。例如:
class Modal extends React.Component {
componentDidMount() {
this.saveModel();
}
saveModel = () => {
return this.setState({loadingRequest: true}, async () => {
await Model.graphqlMutation(request).then(() => {
return this.closeAfterSave();
});
});
}
render() {
return <div>Some divs...</div>
}
}
我正在使用Apollo Client,所以我通过链接定义了我的客户端实例
const errorLink = onError(({networkError, graphQLErrors, operation, forward}) => {
if (graphQLErrors && graphQLErrors[0].message === 'Unauthorized' && localStorage.getItem('authToken')) {
return promiseToObservable(refreshToken()).flatMap((res) => {
return forward(operation);
});
}
});
const link = ApolloLink.from([
errorLink,
authLink,
batchHttpLink,
]);
export const client = new ApolloClient({
link,
cache: new InMemoryCache(),
defaultOptions: defaultOptions,
});
问题:在errorLink
中,我正在处理错误,但是无法将其传递给发送请求的组件。我会举例显示一些消息。我知道React Context API是我做的,并且与我的组件连接在一起,但是我不知道如何从client
连接到它。
感谢您的建议。