与提供商合作时是否不应使用有状态小部件?

Are stateful widgets not supposed to be used when working with providers?

这更像是一个概念性问题。经历 flutter documentation 我“在 Flutter 中,将状态保持在使用它的小部件之上是有意义的”。通过其余的文档和示例代码,文档似乎希望我们仅使用提供者作为状态并使用使用提供者的无状态小部件。

我对有状态小部件将用于无状态 + 提供者的理解是否正确,或者我是否不正确,我们可以将它们一起使用以达到其他效果?

当然可以一起使用。有时您甚至必须这样做,例如用于存储 GlobalKeyTabController。是否将与您的业务逻辑相关的其他状态放在那里完全取决于您,但我不明白为什么您不应该这样做,如果它对您的特定用例有意义的话。

在我自己的项目中,我经常根据屏幕的复杂性混合使用状态管理方法。如果这是您的第一个 Flutter 项目,我建议您从有状态的小部件开始,当您发现它变得太大或难以管理时,您可以随时使用 Provider.

重构它

是的,您可以将 StatefulWidgetsProvider / 任何状态管理一起使用。 Provider 提供需要在应用程序中多次使用的全局变量,或者需要全局存储的全局变量,因此这些 Widget 不需要是有状态的。但是 状态不影响 其他小部件或应用程序上的任何其他“东西”的小部件可以管理自己的状态。