You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter页面加载时initState未调用问题求助

问题原因及解决方法

你的代码核心问题是生命周期方法命名错误:你定义的是initstate()(小写s),但Flutter标准的初始化生命周期方法是initState()(大写S)。

Flutter框架只会自动识别并调用符合规范命名的生命周期方法,小写s的initstate只是一个普通自定义方法,不会在Widget初始化阶段被触发——这就是为什么你看不到它的打印输出,但build方法能正常执行的原因。

修正后的代码如下:

import 'package:flutter/material.dart';

class MapPagePermissions extends StatefulWidget {
  const MapPagePermissions({Key? key}) : super(key: key);

  @override
  _MapPagePermissionsState createState() => _MapPagePermissionsState();
}

class _MapPagePermissionsState extends State<MapPagePermissions> {

  @override
  void initState(){ // 将小写s改为大写S
    super.initState();
    print('Innit State');
  }

  @override
  Widget build(BuildContext context) {
    print('Build Function'); // Prints

    return const Scaffold(
      body: Center(
        child: Text(
          'MAP PAGE',
          style: TextStyle(fontSize: 30),
        ),
      ),
    );
  }
}

修正后,通过Navigator.push跳转至该页面时,initState会正常被调用,你也能看到对应的打印内容了。

内容的提问来源于stack exchange,提问作者JohnnyQ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 10:36:22