【发布时间】:2019-07-29 12:15:27
【问题描述】:
我正在尝试将嵌套对象写入 apollo 缓存,但它不起作用。简单的变量写入工作正常。我正在使用 Apollo-client v2.4
// Schema
const GET_DATA_FROM_CACHE = gql `
name
address
age
`
// Reading data from cache
render() {
return (
<Query query = {GET_DATA_FROM_CACHE} fetchPolicy = {"cache-only"}>
{({ data }) => (
<View >
<Text> Name: {data.name} </Text>
</View>
)}
</Query>
)
}
// THIS WORKS as I can see the name in my Text field
client.writeData({
data: {
name: 'mr x',
age: 25
}
})
// THROWS ERROR: "cannot read property country of undefined"
client.writeData({
data: {
name: 'mr x',
address: {
country: 'y',
city: 'z'
},
age: 25
}
})
【问题讨论】:
-
请比“这不起作用”更具体。您是否在控制台中看到任何错误?当您的代码运行时,您实际看到的预期行为和意外行为是什么?
-
了解您如何查询此客户端状态以及您的 apollo 客户端配置是什么也可能会有所帮助,因为这些都是可能导致“不工作”的因素
-
我已经更新了 readQuery 部分。这是对缓存的非常简单的写入。我只是想为缓存中的应用添加一些默认值,以检查我以后是否可以将我的应用状态从 this.state={} 推送到 apollo 缓存
标签: javascript graphql apollo apollo-client