如何单独设置类实例的私有属性

  • 本文关键字:属性 实例 何单独 设置 dart
  • 更新时间 :
  • 英文 :


我试图在Provider类中单独设置类实例的属性。但我不确定我做得是否正确。你能告诉我怎么做吗?

void main() { 
Provider userprovider = Provider();
userprovider.setUsername='johncena';
userprovider.setEmail='hello@gmail.com';
print(userprovider.getUser.username);
print(userprovider.getUser.email
}

class Provider {
User _user;
User get getUser => _user;
set setUsername(username){
_user.name = username;
}
set setEmail(email){
_user.email = email;
}
}

class User {
String uid;
String name;
String email;
String username;
String status;
int state;
String profilePhoto;
User({
this.uid,
this.name,
this.email,
this.username,
this.status,
this.state,
this.profilePhoto,
});
}

我在Dartpad上看到的当前错误是:

未捕获的TypeError:无法读取null的属性"set$name"错误:TypeError:不能读取null 的属性"set$name">

在下方编辑-----

为了给你一些上下文,我正在Flutter上构建一个入职页面,用户将首先填写他的用户名,然后他将被推到下一个小部件、出生日期等。

当用户从第一个小部件移动到最后一个小部件时,我计划在本地存储数据,并且只将累积的数据作为一个类推送,user(用户名:xyz,出生日期:11/11/2001,性别:男性,兴趣:网球(。

但是,我不确定如何在提供者类中设置_user实例的各个属性

试试这个:

void main() {
Provider provider = Provider();
provider.name = 'John Cena';
provider.age = 40;
print(provider.user.name); // Prints 'John Cena'
print(provider.user.age); // Prints 40
}
class Provider {
final User _user = User();
User get user => _user;
set name(String name) => _user.name = name;
set age(int age) => _user.age = age;
}
class User {
String name;
int age;
User({this.name, this.age});
}

相关内容

  • 没有找到相关文章

最新更新