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

route_guards.dart 705B

123456789101112131415161718192021222324252627
  1. import 'package:flutter/material.dart';
  2. import 'package:provider/provider.dart';
  3. import '../screens/auth/login_screen.dart';
  4. import '../providers/auth_provider.dart';
  5. class ProtectedRoute extends StatelessWidget {
  6. final Widget child;
  7. const ProtectedRoute({Key? key, required this.child}) : super(key: key);
  8. @override
  9. Widget build(BuildContext context) {
  10. final authProvider = Provider.of<AuthProvider>(context);
  11. if (authProvider.isAuthenticated) {
  12. return child;
  13. } else {
  14. return LoginScreen(
  15. onSuccess: () {
  16. Navigator.of(context).pushReplacement(
  17. MaterialPageRoute(builder: (_) => child),
  18. );
  19. },
  20. );
  21. }
  22. }
  23. }