1

我有一个从类别列表中NODE_DELETE删除 a 的 Mutation 。Category即使它提供了正确deletedIDFieldname的 ,在我刷新页面之前,类别列表也不会更新。

我在这里想念什么吗?感谢您的任何提示!

import Relay from 'react-relay';

export default class DeleteCategoryMutation extends Relay.Mutation {

  getMutation() {
    return Relay.QL`mutation{deleteCategory}`;
  }
  getFatQuery() {
    return Relay.QL`
      fragment on DeleteCategoryPayload {
        category {
          id
        },
        viewer {
          allCategories
        }
      }
    `;
  }
  getConfigs() {
    return [{
      type: 'NODE_DELETE',
      parentName: 'viewer',
      parentID: this.props.viewer.id,
      connectionName: 'allCategories',
      deletedIDFieldName: 'category{id}',
    }];
  }
  getVariables() {
    return {
      id: this.props.categoryId,
    };
  }
  getOptimisticResponse () {
    return {
      deletedId: this.props.categoryId,
      viewer: this.props.viewer.id,
    }
  }
}
4

1 回答 1

0

我认为你需要getFatQuery像下面这样进一步扩展你的。

 getFatQuery() {
    return Relay.QL`
      fragment on DeleteCategoryPayload {
        category {
          id
        },
        viewer {
          allCategories(first: 1000) {
            edges
          }
        }
      }
    `;
 }

希望这可以帮助。但我同意这有点棘手,Relay 应该在这种情况下帮助你......

于 2016-08-16T17:15:27.413 回答