【问题标题】:Refetch method for createRefetchContainer doesn't execute callbackcreateRefetchContainer 的 Refetch 方法不执行回调
【发布时间】:2018-09-13 19:06:52
【问题描述】:

我的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不应该订阅查看器吗?

【问题讨论】:

    标签: relayjs relay relaymodern


    【解决方案1】:

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

    【讨论】:

    • 是的,@jouerai 你将回调作为第二个参数传递
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 2016-05-03
    • 2021-08-18
    • 1970-01-01
    相关资源
    最近更新 更多