如何解决来自asyncStorage,Apollo,React Native的creatHttpLink
“反应阿波罗”:“ 3.1.5”,
“ react-native”:“ https://github.com/expo/react-native/archive/sdk-38.0.2.tar.gz”
“博览会”:“ 38.0.0”
我正在尝试从本地asyncStorage获取我的网址(主要是因为我的网址是在登录后从两个网址中选择并分配给asyncStorage的原因)。 这是我已经尝试过的方法,但是一直在获取未定义的数据
const asyncHttpLink = setContext(async (_,{headers,...context}) => {
const url = await getUrlFromAsyncStorage();
return createHttpLink({
uri: url ? url : '',...context,});
});
然后将其分配给我的Appolo
const client = new ApolloClient({
... other property as cache,type etc. ...
link: ApolloLink.from([
... other links ...
asyncHttpLink,]),});
在响应时,我得到了所有属性,但始终未定义的数据除外
[
"variables","refetch",... other 7 ...,"error","called","data",<== always undefined
"client",]
但是如果我使用标准的createHttpLink,一切都可以正常工作
const httpLink = createHttpLink({
uri: desiredUrl,});
有人一直在追寻同样的情况吗?
解决方法
我找到了解决方法:
const customFetch = async (_: string,options: RequestInit) => {
const url = await getUrlFromAsyncStorage();
return url ? fetch(url,options) : fetch('');
};
const asyncHttpLink = createHttpLink({
fetch: customFetch,});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。