来自超类型的静态成员必须通过定义类型的名称来限定

时间:2018-09-21 14:45:51

标签: dart flutter

我正在创建一些类,但遇到了这个问题:来自超类型的静态成员必须由定义类型的名称限定。 帖子(Documnet文档)->未来

我的主旨是这些

UserApi

import '../api-helper.dart';
import '../../graphql/documents/login.dart';
import 'dart:async';

class UserAPI extends APIHelper {

  static Future<dynamic> login(account) async {
    return await post(new Login('name', 'email', 'token', 'refreshToken', 'createdAt', 'expiresAt', false));
  }

}

APIHelper

import 'package:graphql_flutter/graphql_flutter.dart' show Client, InMemoryCache;
import '../graphql/document.dart';
import '../graphql/graphql-helper.dart';
import 'dart:async';

class APIHelper {

  static const GRAPHQL_URL = 'https://heat-map-api.herokuapp.com/graphql';
  static final _client = Client(
      endPoint: GRAPHQL_URL,
      cache: new InMemoryCache(),
    );

  static Future<dynamic> post(Document document) async {
    return await _client.query(query: GraphQLHelper.getBodyMutation(document), variables: GraphQLHelper.getVariables(document));
  }

}

该如何解决此问题?我还没有编译项目,但是吓到我了。

1 个答案:

答案 0 :(得分:2)

只能在类的外部使用静态成员,但必须在类名前面加上前缀。

像这样的助手更好的设计是使用顶级成员。请参见AVOID defining a class that contains only static members中的Effective Dart 规则。