1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| import 'dart:async'; import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; import 'package:mobile/models/user.dart';
class App extends StatefulWidget { const App({super.key});
@override State<App> createState() => _AppState(); }
class _AppState extends State<App> {
Future<User>? _futureUser;
@override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: const Text("文本内容"), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ ElevatedButton( onPressed: () { setState(() { _futureUser = getAccount(); }); }, child: const Text("登录"), ), Container( child: (_futureUser == null) ? null : buildFutureBuilder(), ) ], ), ), ), ); }
FutureBuilder<User> buildFutureBuilder() { return FutureBuilder<User>( future: _futureUser, builder: (context, snapshot) { if (snapshot.hasData) { return Text("${snapshot.data!.username}\n${snapshot.data!.password}"); } else if (snapshot.hasError) { return Text('${snapshot.error}'); } return const CircularProgressIndicator(); }, ); } }
Future<User> getAccount() async { final response = await http.get( Uri.parse('http://192.168.0.23:8080/api'), ); if (response.statusCode == 200) { return User.fromJson(jsonDecode(response.body)); } throw Exception('请求失败'); }
|