0

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应该订阅观众吗?

4

1 回答 1

1

我相信的签名refetchrefetch(refetchVariables, renderVariable, observerOrCallback, options)所以你的回调应该是第三个参数。

于 2018-04-04T15:31:19.437 回答