reactjs - 如何在graphql查询中设置loading true。?
问题描述
我正在使用graphQl
这个我想设置loading = true
1 秒以显示加载器,之后它将通过响应重置我将如何做我现在使用下面的代码,
const loadData = graphql(initialData, {
options: ({ params: { Id }, authData: { userPermissions } }) => ({
variables: {
Id,
Settings: hasPermissions(userPermissions, [USER_PERMISSIONS.du]),
},
fetchPolicy: APOLLO_FETCH_POLICIES.NETWORK_ONLY,
errorPolicy: APOLLO_ERROR_POLICIES.ALL,
notifyOnNetworkStatusChange: true,
}),
// skip: props => props.loading = true,
props: ({ data }) => {
const { error, loading, refetch, networkStatus, buy, timeZones, manager } = data;
return {
error:error,
loading: networkStatus === 1 && !loading ? true : loading,
networkStatus,
onReload: refetch,
timeZones,
manager: get(manager, 'itUsers', []),
};
},
});
任何帮助表示赞赏。
解决方案
好吧,您可以使用自定义提取。像这样的东西可能会起作用:
const customFetch = (url, {delay, ...opts}) => {
return Promise.all([
fetch(url, opts),
new Promise(resolve => setTimeout(resolve, delay || 0)),
]).then(([res, _]) => res)
}
const uploadLink = createUploadLink({
uri,
fetch: customFetch,
})
const client = new ApolloClient({
cache,
link: uploadLink,
})
//////////////////////////////////////////////
// Then you can add delay option via context
//////////////////////////////////////////////
const loadData = graphql(initialData, {
options: ({ params: { Id }, authData: { userPermissions } }) => ({
variables: {
Id,
Settings: hasPermissions(userPermissions, [USER_PERMISSIONS.du]),
},
fetchPolicy: APOLLO_FETCH_POLICIES.NETWORK_ONLY,
errorPolicy: APOLLO_ERROR_POLICIES.ALL,
notifyOnNetworkStatusChange: true,
///////////////////////////////////////////
// add context with delay
context: {
fetchOptions: {delay: 1000},
///////////////////////////////////////////
},
}),
// skip: props => props.loading = true,
props: ({ data }) => {
const { error, loading, refetch, networkStatus, buy, timeZones, manager } = data;
return {
error:error,
loading: networkStatus === 1 && !loading ? true : loading,
networkStatus,
onReload: refetch,
timeZones,
manager: get(manager, 'itUsers', []),
};
},
});
我还没有测试过。
推荐阅读
- django - Django如何获取模型字段并发送电子邮件?
- java - 获取 Android Bitmap Byte Count i(API 级别 18 - 28)
- android - 我的按钮/微调器都没有点击
- android - Android Firebase:防止伪造的客户端插入
- tensorflow - `tf.boolean_mask` 的逆向操作
- validation - Grails 3:以编程方式调用约束验证方法
- python - 如何在共享服务器上部署 LinkChecker
- zip - 使用多台计算机解压缩大文件
- python - 计算项集的支持度
- python - 字符串对象不支持项赋值