我的QueryRenderer
使用以下查询:
```
graphql`
query page_Query {
viewer {
id
...MountedRenderer_viewer
}
}
`
这就是我createRefetchContainer
的样子:
```
createRefetchContainer(
MountComponent,
graphql`
fragment MountedRenderer_viewer on User @argumentDefinitions(show: { type: "Boolean", defaultValue: false }) {
id
name @include(if: $show)
}
`,
graphql`
query OwnershipsRenderer_Query($show: Boolean!) {
viewer {
...MountedRenderer_viewer @arguments(show: $show)
}
}
`,
);
在我的MountComponent
组件中我在componentDidMount中执行此操作:
```
this.props.relay.refetch(
{ show: true },
err => {
console.log('done!');
},
{ force: true },
);
我查看我的商店,我看到“名称”的数据被提取并与商店合并。但是,MountComponent
不会使用新数据重新呈现,也不会记录“完成”。 MountComponent
不应该订阅观众吗?
答案 0 :(得分:1)
我相信refetch
的签名是refetch(refetchVariables, renderVariable, observerOrCallback, options)
所以你的回调应该是第三个参数。