1、async...await 返回的是Future,后面可以接then()
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");
});
}
2、无状态和有状态的widget
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()");
}
}
文章评论