如何让提供者只重建某些小部件?

How to make the provider rebuilding only certain widget?

我是提供商的新手,我有 2 个关于重建树的问题

我有这个class

class Myprovider extends ChangeNotifier {
  bool isFound= false;

  bool get isFoundM=> isFound;

  void changeStatus(bool status){
    isFound= status;
    notifyListeners();
  }
}

我有 stfl 小部件,其中包含 build method

下的以下代码
 Myprovider myProvider = Myprovider ();
    Column(
        mainAxisAlignment: myProvider.isFound?  MainAxisAlignment.center: MainAxisAlignment.start,
        children:[

          myProvider.isFound? const Text('Hello flutter'):Container(),

          const Text('Hello dart'),

          TextButton(
              onPressed:(){
                myProvider.changeStatus(true);
              },

              child: Text('tab me')
          )

        ]
    );

1- 当我点击 Button 时,Hello flutter Text only 只会重建它自己,还是会重建整个树?

2- 我上面专栏中的小部件 属性 怎么样? .. 它只会重建 属性 即使它的父级包装了几个小部件?

如果没有我该如何处理

谢谢

Stateful widget 与 provider 无关。

Stateful Widget 仅在您使用 SetState 时有用。构建上下文下的每个小部件都会更新,它不会帮助您更新任何特定的小部件

使用提供程序构建某些小部件

与提供商合作时,您可以构建某些小部件而无需重建整个内容

为此你可以使用 Consumer

Foo(
  child: Consumer<A>(
    builder: (_, a, child) {
      return Bar(a: a, child: child);
    },
    child: Baz(),
  ),
)

注意:-在本例中,只有 Bar 会在 A 更新时重建。 Foo 和 Baz 不会进行不必要的重建。