【问题标题】:How to refresh an item in a list for Relay Modern如何刷新 Relay Modern 列表中的项目
【发布时间】:2018-03-09 16:52:40
【问题描述】:

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

我有一个分页列表。

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

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

【问题讨论】:

    标签: relayjs relay relaymodern


    【解决方案1】:

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

    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-10-15
      • 2017-11-27
      • 2018-02-14
      • 1970-01-01
      • 2018-05-17
      • 2018-08-28
      • 2018-08-21
      • 2018-04-08
      • 1970-01-01
      相关资源
      最近更新 更多