首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >apollo-链路状态更新缓存和返回异步解析器

apollo-链路状态更新缓存和返回异步解析器
EN

Stack Overflow用户
提问于 2018-03-21 18:48:07
回答 1查看 526关注 0票数 0

如何更新缓存并返回具有apollo-link-state的异步解析器。

示例:

代码语言:javascript
复制
import {
    LOGIN_FORM_QC as query
} from '../../querys'

import axios from 'axios'
import axiosError from '../axiosError'
import {URL} from '../../config'

const newState = (cache, object) => {
    const state = cache.readQuery({query})
    const data = {
        ...state,
        ...{loginForm: {
            ...state.loginForm,
            ...object
        }}
    }
    cache.writeQuery({query, data})
    return null
}

export default (_, input, {cache}) => {
    newState(cache, {loading: true, error: null}) //<-- this is not updating

    const state = cache.readQuery({query})
    const {uid, password} = state.loginForm

    return axios.post(`${URL}/login`, {uid, password})
        .then(res => {
            console.log(res)
            console.log(res.message)
        })
        .catch(err => newState(cache, {
            error: axiosError(err),
            loading: false
        }))
}

基本上,我想设置loading: true,然后执行promise。并且promise将再次更新状态。据我所知,要更新状态,我需要先做return。如何正确地做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2018-03-22 12:39:20

截至2018年3月22日

这是不能正确完成的。要解决此问题,您必须导入阿波罗客户端并在其上调用writeQuery。然后它就起作用了。

GitHub问题趋势:https://github.com/apollographql/apollo-link-state/issues/200

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49404295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档