Apollo 客户端给我一个错误 'store already contains an id' - 这是什么意思?
Apollo client is giving me an error of 'store already contains an id' - what does that mean?
在一个 React Native 项目中,我正在创建一个对象,然后将屏幕重定向到新创建的对象的详细信息页面,我收到此错误:
可能未处理的承诺拒绝(id:0):
网络错误:存储错误:应用程序试图写入未提供 ID 的对象,但存储已包含此对象的 XYZ ID。
查看数据库,我发现该项目已在上一步中正确创建。通过列表导航到同一屏幕和项目(不是在创建和重定向之后)似乎工作正常。我是否必须等待或以某种方式设置某种时间让 apollo 商店保持正确?
我正在使用标准的 apollo 客户端@graphql binding/wrapping
gql:
query getEvent($eventId: ID!) {
Event(id:$eventId) {
id
headline
photo
location
startTime
creator {
username
photo
}
}
}
`;
这是一个代码片段
@graphql(getEventGql,{
options: ({route}) => {
console.log('route params', route.params);
return {
variables: {
eventId: route.params.eventId,
}
}
},
})
@connect((state) => ({ user: state.user }))
export default class EventDetailScreen extends Component {
...
您还必须将 id
添加到 creator
字段:
query getEvent($eventId: ID!) {
Event(id:$eventId) {
id
headline
photo
location
startTime
creator {
id
username
photo
}
}
}
一般来说,确保将 id
添加到查询的所有子选择中。
在一个 React Native 项目中,我正在创建一个对象,然后将屏幕重定向到新创建的对象的详细信息页面,我收到此错误:
可能未处理的承诺拒绝(id:0): 网络错误:存储错误:应用程序试图写入未提供 ID 的对象,但存储已包含此对象的 XYZ ID。
查看数据库,我发现该项目已在上一步中正确创建。通过列表导航到同一屏幕和项目(不是在创建和重定向之后)似乎工作正常。我是否必须等待或以某种方式设置某种时间让 apollo 商店保持正确?
我正在使用标准的 apollo 客户端@graphql binding/wrapping
gql:
query getEvent($eventId: ID!) {
Event(id:$eventId) {
id
headline
photo
location
startTime
creator {
username
photo
}
}
}
`;
这是一个代码片段
@graphql(getEventGql,{
options: ({route}) => {
console.log('route params', route.params);
return {
variables: {
eventId: route.params.eventId,
}
}
},
})
@connect((state) => ({ user: state.user }))
export default class EventDetailScreen extends Component {
...
您还必须将 id
添加到 creator
字段:
query getEvent($eventId: ID!) {
Event(id:$eventId) {
id
headline
photo
location
startTime
creator {
id
username
photo
}
}
}
一般来说,确保将 id
添加到查询的所有子选择中。