1、async...await 返回的是Future,后面可以接then()
<code>import 'package:flutter/material.dart'; main(){ renderSome(); } request() async{ await Future.delayed(const Duration(seconds: 2)); return "response"; } doSomething() async{ var result = await request(); result = "OK response"; return result; } renderSome(){ doSomething().then((value){ debugPrint("result:$value"); }); }</code>
2、无状态和有状态的widget
<code>import 'package:flutter/material.dart'; main(){ runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, home: Scaffold( appBar: AppBar( title: const Text("无状态Widget"), centerTitle: true, ), body: const DemoStateWidget(), ), ); } } class DomeWidget extends StatelessWidget { const DomeWidget(this.text,{Key? key}) : super(key: key); final String text; @override Widget build(BuildContext context) { return Container( color: Colors.white, child: Text(text), ); } } class DemoStateWidget extends StatefulWidget { const DemoStateWidget({Key? key}) : super(key: key); @override State<DemoStateWidget> createState() => _DemoStateWidgetState(); } class _DemoStateWidgetState extends State<DemoStateWidget> { String? text; @override void initState() { super.initState(); //延迟两秒改变text数值 Future.delayed(const Duration(seconds: 2),(){ setState(() { text = "这就变了数值"; }); }); } @override Widget build(BuildContext context) { return Text(text ?? "有状态的widget"); } @override void dispose() { super.dispose(); debugPrint("dispose()"); } @override void didChangeDependencies() { super.didChangeDependencies(); debugPrint("didChangeDependencies()"); } }</code>
文章评论