0

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 に反映するにはどうすればよいですか?

4

1 に答える 1