flutter - 参数类型'Future' 不能分配给参数类型 'FutureOr'颤振与飞镖
问题描述
如果我使用 String 作为类型,则此代码有效,但如果我使用类则无效。
调用代码:
Future<Card> getCard() {
return Future.value(currPack.getCard());
}
这是 getCard 方法:
Future<Card> getCard() async {
return Card("a", "b");
}
这是卡片类:
class Card {
String question = "";
String answer = "";
Card(String question, String answer) {
this.question = question;
this.answer = answer;
}
}
当我使用 Card 类时,我收到一条警告消息:
参数类型“Future<Card>”不能分配给参数类型“FutureOr<Card>”
如果我将返回类型从 Card 更改为 String 并将方法设置为返回字符串,它工作正常。
解决方案
原来在材料设计中有一个名为 Card 的类:'package:flutter/src/material/card.dart'。
第一段代码是导入 material.dart 的屏幕的一部分(import 'package:flutter/material.dart')。
另一个代码来自一个独立的类,它不导入 material.dart,但确实引用了本地卡片类(import 'package:flashcards/modules/Card.dart';)。
所以总结一下:错误是由于引用了两个具有相同名称的类并且没有区分两者。
推荐阅读
- python - R语言中带有分位数的滚动平均值
- bash - 在变量中设置字符串的值
- python - 雪花:在 SQL 过程中出现内存错误
- java - 如何从 recyclerview newsapi 加载 url
- c# - 尝试使用 HttpClient 检索 AccesToken 时出现错误
- arrays - 如何将 0 元匿名函数应用于数组
- windows - 如何使用 CMake 生成 Windows DLL 版本信息?
- c# - VS2019 Docker 支持和 Dockerfile 失败
- sql - 如何用存储在 SQL Server 中不同表中的值替换 XML 中的字符串?
- loops - 为计算列循环工作 DAX 函数