簡體   English   中英

為什么無狀態小部件在 flutter 中刷新時重建

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM