我看到人們通常像這樣初始化控制器,在initState()方法中初始化它。
late VideoPlayerController _videoPlayerController;
@override
void initState() {
super.initState();
_videoPlayerController = VideoPlayerController.network(
"https://assets.mixkit.co/videos/preview/mixkit-spinning-around-the-earth-29351-large.mp4");
}
但后來我意識到,如果我只是像這樣放置控制器,而不initState()只是將控制器放在變數之后,而在變數之前,則一切正常。那么區別是什么呢?
class _VideoDetailScreenState extends State<VideoDetailScreen> {
late VideoPlayerController _videoPlayerController = VideoPlayerController.network(
"https://assets.mixkit.co/videos/preview/mixkit-spinning-around-the-earth-29351-large.mp4");
uj5u.com熱心網友回復:
根據官方檔案:
框架呼叫 initState。State 的子類應覆寫 initState 以執行依賴于 或 widget 的一次性初始化
BuildContext,當呼叫 initState 方法時,它們分別可用作 context 和 widget 屬性。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/535041.html
標籤:扑镖
