0

在 Relay Modern 中,如何仅刷新列表中的一个项目?

我有一个分页列表。

稍后在代码中,我只想刷新一个项目,而不是整个列表。

我如何在现代接力赛中做到这一点?

4

1 回答 1

1

我不知道RefetchContainer没有QueryRenderer. 以下设置(简化代码)对我有用。我所要做的就是调用this.props.relay.refetch({id: this.props.item.id})ListItem 并重新获取列表中的单个项目。

createRefetchContainer(ListItem,
  {
    item: graphql`
      fragment ListItem_item on Item {
        id
        value
      }
    `
  },
  graphql`
      query ListItemRefetchQuery($id: ID!) {
        node(id: $id) {
            ...ListItem_item
        }
      }
    `,
  );
);

createFragmentContainer(List,
  {
    list: graphql`
      fragment List_list on List {
        items {
          ...ListItem_item
        }
      }
    `
  );
);
于 2017-09-28T12:13:39.630 回答