小编Ale*_*ord的帖子

类型转换错误中,类型“Null”不是类型“Map<String,dynamic>”的子类型

在我的示例项目中,我使用riverpod包和freezed. 在下面的代码中,我可以成功从服务器获取数据,但是当我尝试使用时model.fromJson出现此错误:

getting type 'Null' is not a subtype of type 'Map<String, dynamic>' in type cast
Run Code Online (Sandbox Code Playgroud)

服务器响应数据:

getting type 'Null' is not a subtype of type 'Map<String, dynamic>' in type cast
Run Code Online (Sandbox Code Playgroud)

login模型来转换服务器响应的数据和结构:

{
  "message": "test message",
  "statusCode": 1
}
Run Code Online (Sandbox Code Playgroud)

LoginResponse类中,我定义了两个参数messagestatusCode它们由服务器返回。当我尝试使用此请求时,例如:

LoginModel loginModelFromJson(Map<String, dynamic> str) => LoginModel.fromJson(str);

String loginModelToJson(LoginModel data) => json.encode(data.toJson());

@freezed
class LoginModel with _$LoginModel {
  const factory LoginModel({
    required LoginResponse response,
  }) = _LoginModel;

  factory …
Run Code Online (Sandbox Code Playgroud)

dart flutter riverpod flutter-freezed

9
推荐指数
1
解决办法
3万
查看次数

在启用空值安全的情况下,如何在 Iterable.firstWhere 中从 orElse 返回空值?

在 null-safe dart 之前,以下是有效的语法:

final list = [1, 2, 3];
final x = list.firstWhere((element) => element > 3, orElse: () => null);

if (x == null) {
  // do stuff...
}
Run Code Online (Sandbox Code Playgroud)

现在,firstWhere需要orElse返回 an int,而不是 an int?,因此我不能返回 null。

如何从 返回 null orElse

dart flutter

5
推荐指数
1
解决办法
346
查看次数

Riverpod:是否有正确的方法来读取另一个 StreamProvider 中的 StreamProvider?

我一直在尝试使用从我的 auth 获得的uid创建到 Firestore 文档的流Provider

class AuthService {
  ...

  static final provider = StreamProvider.autoDispose((ref) => FirebaseAuth.instance.onAuthStateChanged);
  ...
}
Run Code Online (Sandbox Code Playgroud)

但是,我正在努力创建一个StreamProvider对 auth 值的依赖Provider

class User {
  ...
  static final provider = StreamProvider((ref) {
    final stream = ref.read(AuthService.provider);
    // Returns AsyncValue<Stream<User>> instead of desired AsyncValue<User>
    return stream.map((auth) => Service.user.stream(auth.uid));
  });
  ...
}
Run Code Online (Sandbox Code Playgroud)

我还尝试使用Computed返回uid或流本身,但您无法Computed从 a 中读取a Provider(回想起来是有道理的)。

这个问题与此主题最相关,但它涉及 Provider,而不是 Riverpod。

PS 可以创建 Riverpod 标签吗?

编辑:

答案并不完全正确。在await for …

dart flutter riverpod

2
推荐指数
1
解决办法
5332
查看次数

标签 统计

dart ×3

flutter ×3

riverpod ×2

flutter-freezed ×1