【发布时间】:2021-05-12 18:35:12
【问题描述】:
我正在使用来自 Flutter 的 getit 包。用getit包扩展changeNotifer的单例类如何监听变化?
class UserService extends ChangeNotifier {
Database _db = serviceLocator<Database>();
User user;
Future<void> loadUserFromDatabase(String userId) async {
User user = await _db.getUser(userId);
if (user != null) {
updateUser(user: user);
}
}
void updateUser({
User user,
}) {
this.user = user;
notifyListeners();
}
}
// SERVICE LOCATOR
GetIt serviceLocator = GetIt.instance;
void setupServiceLocator() {
serviceLocator.registerLazySingleton<Database>(
() => DatabaseImpl(),
);
serviceLocator.registerLazySingleton<UserService>(
() => UserService(),
);
}
class UserDetailsPage extends StatelessWidget {
final _service = serviceLocator<UserService>();
@override
Widget build(BuildContext context) {
return return Container(
padding: const EdgeInsets.all(8.0),
child: Text(
_service.user != null
? _service.user.name
: "",
),
);
}
在上面的代码中,如何将名称的变化反映到UserDetailsPage?
【问题讨论】:
标签: flutter flutter-change-notifier