Flutter - 可以将状态放在 MyApp 中吗?

Flutter - Is It OK to Put State in MyApp?

我正在查看 Flutter 的文档,this diagram 显示购物车模型被放入 MyApp。现在,在 flutter 默认项目中,MyApp 是一个 StatelessWidget。这样可以吗——想法是您通过构造函数向下传递对模型的引用——或者它应该是一个 InheritedWidget?或者这有关系吗?感谢您的任何见解 ...

是的,您当然可以使 MyApp 成为有状态的小部件。然而,有时这样做效率不高。例如,假设您在 MyApp 的状态下有一个 int counter = 0;。然后当你改变计数器时,你调用 setState(() {counter++;}); 但是 whole MyApp 将得到重建!如果您的应用程序很复杂,这需要一些时间。

因此,我建议使用一些更自动的库,例如MobX (https://github.com/mobxjs/mobx.dart)。我个人用它写了一个大约 30k 行 flutter 代码的简单项目,而且效果很好。