如何将对象数组粘贴到GraphQL Apollo缓存中?

如何将对象数组粘贴到GraphQL Apollo缓存中?,graphql,apollo,apollo-client,Graphql,Apollo,Apollo Client,我从阿波罗后端收到了一系列国家,没有ID字段 export const QUERY\u GET\u DELIVERY\u COUNTRIES=gql` 查询getDeliveryCountries{ 交货国{ 秩序 名称 日间分娩 地带 iso 海关信息 } } ` 这些对象的模式: { customsInfo:null 交货日期:6天 iso:“UA” 名称:“乌克兰” 订单:70 分区编号:8 __typename:“DeliveryCountry” } 在嵌套组件中,我从client.

我从阿波罗后端收到了一系列国家,没有ID字段

export const QUERY\u GET\u DELIVERY\u COUNTRIES=gql`
查询getDeliveryCountries{
交货国{
秩序
名称
日间分娩
地带
iso
海关信息
}
}
`
这些对象的模式:

{
customsInfo:null
交货日期:6天
iso:“UA”
名称:“乌克兰”
订单:70
分区编号:8
__typename:“DeliveryCountry”
}
在嵌套组件中,我从client.readQuery读取这些对象。 我想要的是将它插入到localStorage,最初读取它,然后将数据写入Apollo客户端缓存

我已经尝试过的是:

useffect(()=>{
const deliveryCountries=JSON.parse(localStorage.getItem('deliveryCountries')| |'[]))
如果(!deliveryCountries | |!deliveryCountries.length){
getCountriesLazy()
}否则{
deliveryCountries.map((c:DeliveryCountry)=>{
client.writequiry({
查询:查询国家/地区,
数据:{
交付国:{
__typename:“DeliveryCountry”,
订单:c.订单,
姓名:c.name,
daysToDelivery:c.daysToDelivery,
zoneId:c.zoneId,
iso:c.iso,
customsInfo:c.customsInfo
}
}
})
})
}
}, [])

但是在执行上面的代码之后,我的缓存中只有一个对象。如何在没有显式ID的情况下写入所有对象,我该怎么做?或者可能我做错了什么?

哈哈。我只需将数组放入必要字段,而无需迭代。writeQuery将替换所有数据,而不会添加任何“结尾”

client.writeQuery({
查询:查询国家/地区,
数据:{
交货国家/地区:交货国家/地区
}
})