0

我看到颤振团队建议这样做:

例如,在 Android 中,这类似于将 ImageView 与您的徽标放在一起。> 在运行时徽标不会更改,因此请在 Flutter 中使用 StatelessWidget。如果您想根据在进行 HTTP 调用或用户交互后收到的数据动态更改 UI,那么您必须使用 StatefulWidget 并告诉 Flutter 框架该小部件的状态已更新,以便它可以更新该小部件。 https://flutter.dev/docs/get-started/flutter-for/android-devs#how-do-i-update-widgets

我正在使用provider,它允许您使用 aChangeNotifierProvider来重建小部件树。

如果我有 aStatelessWidget并且我们使用 a ChangeNotifierProvider,那么build当通知发生更改并且小部件重建时,该函数仍会被多次调用,这让我对 a和 aChangeNotifier之间的区别感到很困惑。StatelessWidgetStatefullWidget

  1. StatelessWidget如果我们使用它的内部是否可以安全使用ChangeNotifierProvider
  2. StatelessWidget使用vs是否有任何性能提升StatefullWidget
4

2 回答 2

2

“安全”不适用,因为setState它是类上的一种方法State,而且由于StatelessWidget没有这些方法,所以这甚至不会出现。并且没有关于性能的广泛而全面的规则。试试看,看看。

于 2020-12-16T02:26:07.923 回答
0

这有点令人困惑,但这种解释可能会有所帮助:

由于ChangeNotifierProvider将处理状态,因此父级(您的小部件)不需要是Statefull,该责任属于ChangeNotifierProvider小部件。

于 2020-12-16T15:27:03.993 回答