login_page.dart 2.22 KB
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:wow_english/login/blocs/login_bloc.dart';
import 'package:wow_english/modes/test_model.dart';
import 'package:wow_english/route/route.dart';
import 'package:wow_english/widgets/we_app_bar.dart';

class LoginPage extends StatelessWidget {
  const LoginPage({super.key, this.title});

  final String? title;

  @override
  Widget build(BuildContext context) {
    return BlocProvider(
      create: (context) => LoginBloc(),
      child: _buildLoginViewWidget(),
    );
  }

  Widget _buildLoginViewWidget() => BlocBuilder<LoginBloc,LoginState> (
    builder: (context, state) {
      final bloc = BlocProvider.of<LoginBloc>(context);
      return Scaffold(
        appBar: WEAppBar(
          titleText: title??'',
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.spaceAround,
            children: [
              GestureDetector(
                onTap: () {
                  Navigator.of(context).pushNamedAndRemoveUntil(AppRouteName.tab, (route) => false);
                },
                child: const Text(
                    '进入首页'
                ),
              ),
              Text(
                  bloc.isLogin?'登陆成功':'还未登陆'
              ),
              GestureDetector(
                onTap: () {
                 TestModel testModel = TestModel(name: 'lcy',age: 31,sex: '男');
                 Map<String,dynamic> jsonMap =  testModel.toJson();
                 if (kDebugMode) {
                   print(jsonMap);
                 }
                 TestModel testModel2 = TestModel.fromJson(jsonMap);
                 if (kDebugMode) {
                   print(testModel2.name);
                 }
                },
                child: const Text(
                    '数据转换'
                ),
              ),
              GestureDetector(
                onTap: (){
                  bloc.add(RequestLoginEvent());
                },
                child: const Text(
                    '发起网络请求'
                ),
              )
            ],
          ),
        ),
      );
    },
  );
}