지난번에 auth page 에서 인증 성공후 Home Screen 으로 이동하는 기능을 추가했습니다.
이번에는 반대로 Home Screen 에서 로그아웃하면 다시 auth page 로 이동하는 기능을 구현하겠습니다.
(실제 사용자관리는 차후 예정).
개발환경 : 윈도우11, 안드로이드 스튜디오, flutter 3.0.1
화면 흐름은 아래와 같다.
지난번 인증 받고 로그인할때 화면 이동시 Get.toNamed('/') 을 사용하여 Home Screen 화면에 리턴 버튼이 생겼다.
그래서 이번에는 Get.offAllNamed('/'); 로 변경하였다.
./src/screens/home_screen.dart
class HomeScreen extends StatelessWidget {
const HomeScreen({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
debugPrint(">>> build from HomeScreen");
return Scaffold(
appBar: AppBar(
centerTitle: true,
title: const Text('Home Screen'),
actions: [
IconButton(
onPressed: () {
// 로그아웃하면 '/auth' 로 이동
UserController.to.setUserAuth(false);
},
icon: const Icon(Icons.logout),
),
],
),
body: const Center(
child: Text('Home Screen'),
),
);
}
}
./src/states/user_state.dart - Get.offAllNamed('/') 를 auth_page 에서 여기로 이동
class UserController extends GetxController {
static UserController get to => Get.find();
final RxBool _userLoggedIn = false.obs;
RxBool get userState => _userLoggedIn;
void setUserAuth(bool authState) {
_userLoggedIn(authState);
// auth_page 에서 여기로 이동
Get.offAllNamed('/');
}
}
'Flutter > 12 Clone 'Used Goods app'' 카테고리의 다른 글
[Flutter] Clone - 당근마켓11(Address - ListView) (0) | 2022.07.22 |
---|---|
[Flutter] Clone - 당근마켓10(Address Model) (0) | 2022.07.22 |
[Flutter] Clone - 당근마켓8(authorization-login) (0) | 2022.07.21 |
[Flutter] Clone - 당근마켓7(PageView - auth page) (0) | 2022.07.20 |
[Flutter] Clone - 당근마켓6(PageView - address page) (0) | 2022.07.19 |