flutter 在initState中初始化控制器与不初始化控制器之间区别

lxkprmvk  于 2022-11-17  发布在  Flutter
关注(0)|答案(1)|浏览(169)

我看到人们通常这样初始化控制器,用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(),只是把控制器放在变量后面,late放在变量前面,一切都很好,那有什么区别呢?

class _VideoDetailScreenState extends State<VideoDetailScreen> {
      
late VideoPlayerController _videoPlayerController = VideoPlayerController.network(
          "https://assets.mixkit.co/videos/preview/mixkit-spinning-around-the-earth-29351-large.mp4");
pbpqsu0x

pbpqsu0x1#

official documentation开始:
框架调用initState。State的子类应该覆盖initState,以执行依赖于BuildContext或小部件的一次性初始化,当调用initState方法时,BuildContext或小部件分别作为上下文和小部件属性可用。

相关问题