我正在创建一些类,并且遇到了这个问题:父类(super class)型的静态成员必须通过定义类型的名称进行限定。
帖子(Documnet文档)-> future
我的观点是:
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));
}
}
API助手
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));
}
}
为了解决这个问题我该怎么办?我还没有编译该项目,但是吓到我了。
最佳答案
静态成员只能(在其类外部)通过在类名前面添加前缀来使用。
像这样的助手更好的设计是使用顶级成员。请参阅AVOID defining a class that contains only static members中的Effective Dart规则。