如何在Flutter中实现SwiftUI的StateObject的语义

pprl5pva  于 2023-04-07  发布在  Flutter
关注(0)|答案(1)|浏览(118)

我在Flutter中有一个StatefulWidget,它创建了一个对象的示例。我如何防止Flutter在每次状态更改时创建一个新示例?

k97glaaz

k97glaaz1#

由于你没有在这里发布任何代码,我将假设你正在做你在build方法中所做的事情。如果是这种情况,那么是的,每当状态重建时,都会创建相同的对象/变量。为了避免这种情况,你需要在build方法之外创建和赋值变量。

class WhateverWidget extends StatefulWidget {
  const WhateverWidget({ super.key });

  @override
  State<WhateverWidget> createState() => _WhateverWidgetState();
}

class _WhateverWidgetState extends State<WhateverWidget> {
  final nameOfUser = 'bqubique';
  
  @override
  Widget build(BuildContext context) {
    return Container(color: const Color(0xFFFFE306));
  }
}

在此代码示例中,状态刷新时不会重新创建nameOfUser变量。
请参考StatefulWidget class的官方文档。
希望这有意义。

相关问题