flutter - 冻结 - 没有为 x 定义 getter 'x'
问题描述
我正在尝试开始使用 Freezed,我在下面定义了这个类,我的应用程序的其余部分似乎没有发现它有一个id
属性:
import 'package:firebase_auth/firebase_auth.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
part 'user.freezed.dart';
@freezed
abstract class VpUser implements _$VpUser {
factory VpUser({String id, User firebaseUser}) = _VpUser;
const factory VpUser.empty() = _Empty;
const VpUser._();
}
我在身份验证服务中使用该类:
class AuthenticationService extends VpService {
final FirebaseAuth _auth = FirebaseAuth.instance;
final Rx<User> _firebaseUser = Rx<User>();
VpUser get user =>
VpUser(id: _firebaseUser.value?.uid, firebaseUser: _firebaseUser.value);
然后我像这样调用附加到 AuthService 的用户:
if (_authenticationService.user.id != null) {
我有错误:
错误:没有为类“VpUser”定义吸气剂“id”。
- “VpUser”来自“package:vepo/domain/auth/user.dart”(“lib/domain/auth/user.dart”)。尝试将名称更正为现有 getter 的名称,或定义一个名为“id”的 getter 或字段。如果(_authenticationService.user.id != null){
如何在其中声明 idVpUser
以便其他类可以访问它?
解决方案
这一定是我的VpUser.empty
实现,而不是声明该id
领域。
我认为这是如何在不让应用程序的其余部分看不到该属性的情况下执行空值:
const factory VpUser.empty(
{@nullable @Default(null) String id,
@nullable @Default(null) User firebaseUser}) = _Empty;
推荐阅读
- python - 如何使用 DataArray where() 函数根据条件从另一个 DataArray 赋值
- python - 如何在 Tensorflow V2 中使用带有图形的 `tf.data.Dataset`?
- java - 如何用另一种方法停止正在运行的方法?
- php - PHP 中的 System Center Operations Manager (SCOM) 1801 REST API 身份验证
- javascript - ExtJs,获取扩展类中的一个元素
- android - 在 android 中使用改造 2 进行 API 调用
- python - 将电子邮件附件保存到指定存储桶
- bitbucket-pipelines - npm ci 不适用于 bitbucket 管道?
- java - 使用 selenium webdriver 处理动态表
- python - 如何使用 Mac 终端将 python 3.6 更新到 3.7