[英]Why Stateless widget rebuild on refresh in flutter
我創建了一個演示,
我制作了一個有狀態的主屏幕,其中包含兩個容器的列。
一個是無國籍單獨制作的...
在腳手架上,我放置了刷新按鈕以隨機更改顏色,但我不想更改無狀態小部件,但它會在刷新時更改..
為了說明我的觀點,我做了這個演示,實際上我被困在我的應用程序中
這是我的代碼
class HomeScreen extends StatefulWidget {
@override
State<HomeScreen> createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Color.fromRGBO(Random().nextInt(255), Random().nextInt(255), Random().nextInt(255), 1),
title: Text('Demo'),
actions: [IconButton(onPressed: (){
setState(() {
});
}, icon: Icon(Icons.refresh))],
),
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Container(
height: 100,
color: Color.fromRGBO(Random().nextInt(255), Random().nextInt(255), Random().nextInt(255), 1),
),
MyWidget(),
],
)
);
}
}
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
width: 100,
height: 100,
color: Color.fromRGBO(Random().nextInt(255), Random().nextInt(255), Random().nextInt(255), 1),
child: Center(child: Text('Why this ,stateless ,also changed on refresh..')),
);
}
}
將 const 與鍵構造函數一起使用
class MyWidget extends StatelessWidget {
const MyWidget({Key? key}) : super(key: key);
並使用
const MyWidget(),
mywidget 盡管是一個無狀態小部件,但它放置在有狀態小部件中。 因此,每次構建有狀態小部件時,它也會重建無狀態小部件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.