flutter - 参数类型“字符串?” 不能分配给参数类型“字符串”
问题描述
当我将颤振升级到 2.0.1 时,显示此错误:
The argument type 'String?' can't be assigned to the parameter type 'String'.
这是我的代码:
enum SubStatus {
SUB,
UNSUB,
}
extension ResponseStatusExtension on SubStatus{
static const statusCodes = {
SubStatus.SUB: "sub",
SubStatus.UNSUB: "unsub",
};
String? get statusCode => statusCodes[this];
}
这是如何使用它:
字符串 url = "/post/sub/source/" + subStatus.statusCode + "/" + channelId;
这是错误用户界面:
我应该怎么做才能解决它?我试图返回String
,但在枚举代码中告诉我应该返回String?
:
我应该怎么办?
解决方案
更改 to 的返回类型statusCode
并String
提供默认值。
String get statusCode => statusCodes[this] ?? '';
null
访问地图时,如果地图中不存在该键,则有可能获得返回值。只需提供默认值即可编译此代码。除非您在枚举中添加一些内容而不向地图添加值,否则不应使用该默认值。
推荐阅读
- postgresql - PostgreSQL - 我可以使用函数返回名称作为视图名称吗
- java - 用于静态变量的 Java 同步块
- node.js - total.js 流中 http-request 的动态路由
- amazon-web-services - 无法通过“docker pull”从单独的帐户访问 ECR 存储库
- swift - 使用服务器端 Swift 时是否可以使用 Apple 框架(例如:GameplayKit、SceneKit)?
- android - Firebase - 错误:程序类型已存在:com.google.api.AuthProviderOrBuilder
- ios - 领域与 Firestore 上的大型集合同步 - 架构问题/问题
- android - 如何使用数据绑定实现 TextView 时钟?
- r - 用增量序列号填充数据框列
- google-cloud-messaging - 源 GCP/GCM 和目标 Firebase/FCM 项目之间的关系