这是CaiYouHui前端,一个关于flutter的安卓app,前端使用flutter实现

user_provider.dart 1.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import 'package:flutter/material.dart';
  2. import '../../data/models/user.dart';
  3. import '../../data/repositories/user_repository.dart';
  4. class UserProvider with ChangeNotifier {
  5. final UserRepository userRepository;
  6. User? _user;
  7. bool _isLoading = false;
  8. String? _error;
  9. UserProvider({required this.userRepository});
  10. User? get user => _user;
  11. bool get isLoading => _isLoading;
  12. String? get error => _error;
  13. Future<void> loadUserProfile() async {
  14. _isLoading = true;
  15. _error = null;
  16. notifyListeners();
  17. try {
  18. final response = await userRepository.getUserProfile();
  19. if (response.success && response.data != null) {
  20. _user = response.data;
  21. } else {
  22. _error = response.message;
  23. }
  24. } catch (e) {
  25. _error = '加载失败: $e';
  26. } finally {
  27. _isLoading = false;
  28. notifyListeners();
  29. }
  30. }
  31. Future<void> updateUserProfile(User user) async {
  32. _isLoading = true;
  33. _error = null;
  34. notifyListeners();
  35. try {
  36. final response = await userRepository.updateUserProfile(user);
  37. if (response.success && response.data != null) {
  38. _user = response.data;
  39. } else {
  40. _error = response.message;
  41. }
  42. } catch (e) {
  43. _error = '更新失败: $e';
  44. } finally {
  45. _isLoading = false;
  46. notifyListeners();
  47. }
  48. }
  49. void clearError() {
  50. _error = null;
  51. notifyListeners();
  52. }
  53. void updateUser(User? user) {
  54. _user = user;
  55. notifyListeners();
  56. }
  57. }