gpt4 book ai didi

dart - 将 setState 与 StatelessWidget 一起使用

转载 作者:IT老高 更新时间:2023-10-28 12:43:33 25 4
gpt4 key购买 nike

有没有办法将 setState 与 StatelessWidget 一起使用?我知道我可以与 StatefulWidget 一起使用并使用 State,但我不知道是否有办法将它与 StatelessWidget 一起使用。

我认为这是一个直接的问题,不需要显示代码。

如果你能帮助我,我将不胜感激。

最佳答案

这是一个使 StatelessWidget 能够 self 更新的代码示例,来自 Didier Boelens 的一篇文章。

https://www.didierboelens.com/2019/09/flutter-internals/

The following useless code makes possible for a StatelessWidget toupdate itself (as if it was a StatefulWidget but without using anysetState()), by using the BuildContext …

void main(){
runApp(MaterialApp(home: TestPage(),));
}

class TestPage extends StatelessWidget {
// final because a Widget is immutable (remember?)
final bag = {"first": true};

@override
Widget build(BuildContext context){
return Scaffold(
appBar: AppBar(title: Text('Stateless ??')),
body: Container(
child: Center(
child: GestureDetector(
child: Container(
width: 50.0,`enter code here`
height: 50.0,
color: bag["first"] ? Colors.red : Colors.blue,
),
onTap: (){
bag["first"] = !bag["first"];
//
// This is the trick
//
(context as Element).markNeedsBuild();
}
),
),
),
);
}
}

Between us, when you are invoking the setState() method, the latterends up doing the very same thing: _element.markNeedsBuild().

关于dart - 将 setState 与 StatelessWidget 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51756262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com