java缓存更新_更新Apollo客户端上的缓存

我正在使用Apollo Dev Tools for Chrome,我似乎无法理解如何更新缓存 .

每次查询后缓存都是相同的,即使它正在呈现正确的数据 .

我正在开发一个CRUD应用程序,在删除时我希望页面显示在服务器上所做的更改 . 在执行删除DB中的项目的突变后,我还想从缓存中删除该项目 .

// mutation

const DELETE_ELEMENT_MUTATION = gql`

mutation DELETE_ELEMENT_MUTATION($id: String!) {

deleteElement(id: $id)

}

`;

// update cache

update = (cache, payload) => {

const data = cache.readQuery({query: queryAllElements});

const result = data.allElements.filter(element => {

const elementId = script._id;

const compareId = JSON.parse(payload.data.deleteElement).id;

return elementId !== compareId;

});

cache.writeQuery({query: queryAllElements, data: result});

};

mutation={DELETE_ELEMENT_MUTATION}

variables={{id: id}}

update={this.update}

>

{(deleteElement) => (

onClick={() => {

deleteElement();

}}

/>

)}

更新后,缓存未更新 .

编辑:已更改

cache.writeQuery({query: getAllElements, data: result});

// to

cache.writeQuery({query: queryAllElements, data: result});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值