Flutter新手调用initState方法未触发、print打印内容无输出问题求助
问题修复方案
- Dart 是严格区分大小写的编程语言,你代码中声明的方法为
Initstate(),和 Flutter State 类定义的生命周期回调方法initState()拼写不一致(你写的方法首字母I大写,正确写法首字母i小写、S大写),相当于你自定义了一个全新的普通方法,没有完成对父类生命周期方法的重写,因此不会被 Flutter 框架自动调用。 - 补充规范问题:Dart 官方要求类名使用大驼峰命名法,你当前定义的 Widget 类名
example不符合规范,建议改为Example,同时 State 类建议命名为_ExampleState,避免和其他页面的 State 类重名冲突。
修正后的完整代码如下:
import 'package:flutter/material.dart'; // 类名调整为符合规范的大驼峰 class Example extends StatefulWidget { @override _ExampleState createState() => _ExampleState(); } class _ExampleState extends State<Example> { // 纠正为正确的initState方法名 @override void initState() { super.initState(); print('hello world'); } @override Widget build(BuildContext context) { return const Scaffold(); } }
后续重写框架提供的父类方法时,优先使用IDE的自动重写功能生成方法模板,可有效避免手动输入产生的大小写、拼写错误。
内容的提问来源于stack exchange,提问作者iJezoul
相关产品推荐
相关产品推荐

