小编srb*_*ma1的帖子

整个子树是否在颤振中在 setState 上重建

我是 flutter 的新手,真的想知道当我们调用 setState 时是否所有小部件的子树都得到重建。

这里的子树是指该小部件下面的所有小部件树(包括该小部件作为根节点)。

当我们调用setState函数时,会在子树的build上调用该方法root node,从而触发其子树上的构建方法。假设MyWidget1子树(该小部件的子节点)的分支(此处)与状态变量无关。我注意到即使是独立的分支也会setState在父节点调用时重建。

class _MyAppState extends State<MyApp> {
  int count=0;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(children: <Widget>[ MyWidget1(),MyWidget2(count),],),
      floatingActionButton: FloatingActionButton(onPressed: ()=>setState((){count++;}),), 
    );
  }
}

class MyWidget1 extends StatelessWidget {
  @override
  Widget build(BuildContext context) { print("widget builds 1");
    return Container(height: 100, color: Colors.orange,);
  }
}
class MyWidget2 extends StatelessWidget {
  final int count;
  MyWidget2(this.count);
  @override
  Widget build(BuildContext context) { print("widget builds 2");
    return …
Run Code Online (Sandbox Code Playgroud)

flutter

4
推荐指数
1
解决办法
544
查看次数

构造函数重载创建混乱

#include<bits/stdc++.h>
#define mpq pair<int,Query>
using namespace std;

class Query{
    public:
    int a1,a2,b1,b2,c1,c2,d,l,r;
    Query(){}
    Query(int a1,int a2,int b1,int b2,int c1,int c2,int d,int l,int r){
        this->a1=a1; this->a2=a2;
        this->b1=b1; this->b2=b2;
        this->c1=c1; this->c2=c2;
        this->d=d; this->l=l; this->r=r;
        print();
    }
    Query(int d,int l,int r){
        Query(0,1,0,1,0,1,d,l,r);
    }

    void print(){
        cout<<d<<" "<<l<<" "<<r<<endl;
    }
};

map<int,Query> query;
int main(){
    query.insert(mpq(1,Query(0,1,0,1,0,1,1,1,1)));
    query[1].print();
    cout<<endl;

    query[4]=Query(4,4,4);//not working properly
    query[4].print();//giving output of query[1].print
    cout<<endl;

    query[2]=Query(0,1,0,1,0,1,2,2,2);
    query[2].print();

}
Run Code Online (Sandbox Code Playgroud)

我无法解释此代码的输出 query[4].print()是否给出了意外的输出

我期待输出

4 4 4

但它正在给予

1 1 1

作为输出

c++ constructor dictionary stdmap std

1
推荐指数
1
解决办法
56
查看次数

标签 统计

c++ ×1

constructor ×1

dictionary ×1

flutter ×1

std ×1

stdmap ×1