- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
感谢您的关注。我是 flutter 的初学者。我不知道为什么默认情况下不调用 initState
函数。因为 print(list[0]) 语句没有运行。
import 'package:flutter/material.dart';
import 'main_page/main_page.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
State<StatefulWidget> createState() => _MyHomePage();
}
class _MyHomePage extends State<MyHomePage> {
int _currentIndex = 0;
List<Widget> list = List();
@override
void initState() {
list.add(MainPage());
print(list[0]);
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: MainPage(),
bottomNavigationBar: BottomNavigationBar(
items: [
BottomNavigationBarItem(
icon: Icon(Icons.home),
title: Text('Home')
),
BottomNavigationBarItem(
icon: Icon(Icons.person),
title: Text('Me')
),
],
currentIndex: _currentIndex,
onTap: (int index) {
setState(() {
_currentIndex = index;
});
},
type: BottomNavigationBarType.fixed,
),
);
}
}
最佳答案
我试过你的代码,它仍然打印正常。请确保您RE-RUN 代码,不要进行热重载,因为 initState() 仅被调用一次。文件说:
The framework will call this method exactly once for each [State] object it creates.
我从 initState() 的文档中选择了您应该遵循的一件事:
If you override this, make sure your method starts with a call to super.initState().
这意味着您必须将所有代码放在 super.initState() 下,如下所示:
@override
void initState() {
super.initState();
list.add(MainPage());
print('initState() ---> ${list[0]}'); // This will print "initState() ---> MainPage"
}
关于flutter - StatefulWidget 默认不调用 initState 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54192066/
在文档中是这样写的,但我无法理解。 Called when this object is inserted into the tree. The framework will call this me
我正在 initstate 中通过 RestAPI 创建一个企业列表。我需要使用 sharedpreference 值作为其参数之一,但是当我尝试加载数据时,sharepreference 值初始为空
看看这段代码 - 用于获取数据并显示在列表中的小部件: class _MyEventsFragmentState extends State { var events; @override
在我的应用程序中,我有一个抽屉导航,正文根据抽屉中按下的磁贴进行更新。每个类的主体都是相同的,它是一个有状态的小部件并返回一个 ListView 。对于此类的每个实例(以及每个图 block ),我需
我正在使用 initState 并遇到 Navigator 问题: I/flutter ( 5726): The following assertion was thrown building Bui
一直在学习处理flutter中的async函数。我定义了一个 async 函数,并在两个地方调用了它 1。来自 build 函数。 2.来自 initState。 当从 build 函数调用时,函数被
我想在 initState 中创建一个 TextController,然后像处理好 child 一样处理它。但出于某种原因, Controller 在 intiState 之外不可用: class _
我在 initState() 中调用异步函数,但系统实际上等待异步函数的结果。谁能告诉我为什么? 这是我的代码: import 'package:flutter/material.dart'; voi
这个问题在这里已经有了答案: Is there a way to load async data on InitState method? (14 个回答) 2个月前关闭。 Flutter - 有没有
我正在创建 TextEditingController ,并初始化它,我可以做 class _HomePageState extends State { var _controller = Tex
在多次调用的选项卡 initstate() 之间切换。 我的标签栏 A、B、C 和 D 中有 4 个标签。 情况 (1) 如果我像从选项卡 A 切换到选项卡 B 那样切换选项卡,则它工作正常。 情况
我不知道在哪里调用 super.initSate()在 flutter ?在某些代码示例中,它在开头调用,而在其他代码示例中则在结尾调用。有区别吗? 我试图用谷歌搜索,但没有找到关于这个函数调用位置的
我有以下方法: getCalendarEventList() async { print('here we go agsain'); await Firestore.instanc
我是 Flutter 的新手,遇到了一个问题。 我的应用中有一个 Feed 模型,如下所示: import 'package:uuid/uuid.dart'; class Feed { // St
在 StatefulWidget 中制作 AnimationController final 的最佳方法是什么,以下代码会出错。 final AnimationController _controll
我正在 initState(){} 中初始化一个变量: @override void initState() { getDataFromFirestore(); super.ini
我正在开发这个应用程序,您可以在其中导航到带有状态小部件的屏幕,该小部件具有在 initState() 中运行的一堆复杂函数。 由于这些功能,触发导航功能后导航到此屏幕需要将近两秒钟,即非常慢 我的代
我正在使用 Flutter 创建一个应用程序。我想从 firebase 获取数据并显示 GridView 。数据从 firebase 正确获取。 initState() 中的数据获取 但它并没有更新另
initState() 在我路由到的第一个 Widget 上被调用了两次。 我已经删除了 initState() 方法中的所有方法调用和正在完成的工作,以排除它以某种方式调用自身的任何可能性。它所做的
每次我离开一个小部件然后返回到它时,我都会收到对该小部件的 initState 方法的“n+1”次调用。 我的设置与此类似。我从小部件 A 开始,当识别到对卡片的点击时,我们执行 Navigator.
我是一名优秀的程序员,十分优秀!