如何在颤动中从图形 QL 响应中删除类型名

Posted

技术标签:

【中文标题】如何在颤动中从图形 QL 响应中删除类型名【英文标题】:How to remove typename from graph QL response in flutter 【发布时间】:2021-07-05 01:24:17 【问题描述】:

谁能帮我从flutter.how中的图形QL中删除类型名和不需要的字段,以便像邮递员一样获得响应。我正在使用包https://pub.dev/packages/graphql

【问题讨论】:

【参考方案1】:

我遇到了同样的问题,我找不到禁用 __typename 的简单方法, 于是我写了一个小程序,

  T removeTypename<T>(T data) =>
      _removeUnwantedKeys(data, ['__typename']);

  T _removeUnwantedKeys<T>(T data, List keysToRemove) 
    if (data is Map && data.containsAnyOf(keysToRemove)) 
      Map d = ;
      data.forEach((key, value) 
        if (!keysToRemove.contains(key)) d[key] = _removeUnwantedKeys(value,keysToRemove);
      );
      return d as T;
     else if (data is List)
      return data.map((c) => _removeUnwantedKeys(c,keysToRemove)).toList() as T;
    else
      return data;
  
extension MapsMadeEasy<U, V> on Map<U, V>? 
  bool containsAnyOf(List keys) 
    if (this == null) return false;

    return this!.entries.any((element) => keys.contains(element.key));
  


【讨论】:

thnks@0xManjeet

以上是关于如何在颤动中从图形 QL 响应中删除类型名的主要内容,如果未能解决你的问题,请参考以下文章

如何在颤动中从列表中删除项目时重新加载列表

在颤动中从地图<日期时间,列表>中删除项目

在颤动中从列表中添加和删除对象

如何在颤动中从父小部件访问所有孩子的状态?

在颤动中从webview中删除html元素

如何在颤动中从 api url 加载图像?