หากคุณต้องการทำสิ่งนี้เพียงครั้งเดียวให้ทำเพราะกรอบงานจะเรียกinitState()
method เพียงครั้งเดียวสำหรับวัตถุ State แต่ละชิ้นที่สร้างขึ้น
@override
void initState() {
super.initState();
WidgetsBinding.instance
.addPostFrameCallback((_) => executeAfterBuildComplete(context));
}
หากคุณต้องการทำสิ่งนี้ซ้ำแล้วซ้ำอีกเช่นย้อนกลับหรือไปที่หน้าจอถัดไปและอื่น ๆ ... ให้ทำเพราะdidChangeDependencies()
เรียกว่าเมื่อการอ้างอิงของวัตถุสถานะนี้เปลี่ยนแปลง
ตัวอย่างเช่นหากการเรียกก่อนหน้านี้เพื่อbuild
อ้างถึงสิ่งInheritedWidget
ที่เปลี่ยนแปลงในภายหลังเฟรมเวิร์กจะเรียกเมธอดนี้เพื่อแจ้งอ็อบเจ็กต์นี้เกี่ยวกับการเปลี่ยนแปลง
วิธีนี้เรียกว่าทันทีหลังจากinitState
นั้น สามารถโทรBuildContext.dependOnInheritedWidgetOfExactType
จากวิธีนี้ได้อย่างปลอดภัย
@override
void didChangeDependencies() {
super.didChangeDependencies();
WidgetsBinding.instance
.addPostFrameCallback((_) => executeAfterBuildComplete(context));
}
นี่คือฟังก์ชันโทรกลับของคุณ
executeAfterBuildComplete([BuildContext context]){
print("Build Process Complete");
}
build
ก็ไม่น่าที่คุณต้องการเริ่มต้นการเข้าสู่ระบบใน สามารถเรียก Build ได้ทุกเมื่อหลายครั้ง