import 'package:flutter/material.dart';
class Sample extends StatelessWidget {
final int number1;
final int number2;
factory Sample(int passNumber1, int passNumber2, Key key) {
int changeNumber2 = passNumber2 *
2; //any modification you need can be done, or else pass it as it is.
return Sample._(passNumber1, changeNumber2, key);
}
const Sample._(this.number1, this.number2, Key key) : super(key: key);
@override
Widget build(BuildContext context) {
return Text((number1 + number2).toString());
}
}
4条答案
按热度按时间a64a0gku1#
初始化控制器应该是一次性操作;如果在StatelessWidget的build*方法上执行此操作,则每次重新构建此小部件时都会触发此操作。如果在StatefulWidget的initState*上执行此操作,则在初始化状态时将此对象插入树中时,仅调用一次此操作。
weylhg0b2#
我正在寻找在无状态小部件的构造函数中传递的值的基础上初始化一些值。因为我们都知道,对于无状态小部件,我们有initState()覆盖回调来初始化某些值等。但对于无状态小部件,默认情况下没有提供选项。如果我们在构建方法中这样做,它将在每次视图更新时被调用。所以我正在做下面的代码。它工作。希望它能帮助到别人。
yhqotfr83#
无论是函数还是小部件构建中的其他内容,只要您执行热重载或页面刷新,都会运行,但对于
initState
,它将在启动应用或在IDE中重新启动应用时运行一次,例如在StatefulWidget
小部件中,您可以用途:envsm3lx4#
要使用initState()、dispose()等有状态功能,您可以使用以下代码,这将为您提供自由:)
使用上面的代码,您可以创建包含有状态小部件方法的有状态 Package 器。
Github上提供的代码
注意:您可以根据需要随时在有状态 Package 类中添加或删除方法!!
快乐飞翔!!