无法将参数类型'Future <xxx>'分配给参数类型'FutureOr <xxx>'Flutter&Dart

时间:2020-10-15 01:43:20

标签: flutter dart

如果我使用String作为类型,则此代码有效,但如果使用类,则无效。

呼叫代码:

Future<Card> getCard() {
    return Future.value(currPack.getCard());
  }

这是getCard方法:

  Future<Card> getCard() async {
    return Card("a", "b");
  }

这是Card类:

class Card  {
  String question = "";
  String answer = "";

  Card(String question, String answer) {
    this.question = question;
    this.answer = answer;
  }
}

当我使用Card类时,会收到一条警告消息:

不能将参数类型'Future '分配给参数类型'FutureOr '

如果我将返回类型从Card更改为String,并将方法设置为返回字符串,则效果很好。

1 个答案:

答案 0 :(得分:0)

结果证明,材料设计中有一类叫做Card:'package:flutter / src / material / card.dart'。

代码的第一位是导入material.dart(导入'package:flutter / material.dart')的屏幕的一部分。

其他代码来自一个独立的类,该类不导入material.dart,但确实引用了本地卡类(导入'package:flashcards / modules / Card.dart';)。

因此,可以总结一下:该错误是由于引用了两个具有相同名称的类而不区分两者而引起的。