减少Flutter中的dispose()样板?

ch271828n

在Flutter中,我们需要写下在dispose()中创建的许多内容State,例如

  final _nameController = TextEditingController();

  @override
  void dispose() {
    _nameController.dispose();
    super.dispose();
  }

因此,我想知道是否有一种方法可以消除这种需求,并自动调用该处理程序?

谢谢!

ch271828n

我找到了另一个解决方案:flutter_hooks

  • 优点:几乎没有样板!
  • 缺点:需要从其他基类(HookWidget,而不是StatefulWidget)扩展

一个样本:

之前-

class Example extends StatefulWidget {
  final Duration duration;

  const Example({Key key, @required this.duration})
      : assert(duration != null),
        super(key: key);

  @override
  _ExampleState createState() => _ExampleState();
}

class _ExampleState extends State<Example> with SingleTickerProviderStateMixin {
  AnimationController _controller;

  @override
  void initState() {
    super.initState();
    _controller = AnimationController(vsync: this, duration: widget.duration);
  }

  @override
  void didUpdateWidget(Example oldWidget) {
    super.didUpdateWidget(oldWidget);
    if (widget.duration != oldWidget.duration) {
      _controller.duration = widget.duration;
    }
  }

  @override
  void dispose() {
    _controller.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Container();
  }
}

之后-

class Example extends HookWidget {
  final Duration duration;

  const Example({Key key, @required this.duration})
      : assert(duration != null),
        super(key: key);

  @override
  Widget build(BuildContext context) {
    final controller = useAnimationController(duration: duration);
    return Container();
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

减少测试中的Spring ContextConfiguration样板

来自分类Dev

减少测试中的Spring ContextConfiguration样板

来自分类Dev

如何减少模块中的样板配置?

来自分类Dev

如何减少每个类中的Logger.getLogger(...)样板

来自分类Dev

减少案例类模型的Slick定义中的样板

来自分类Dev

减少类层次结构中的构造函数样板代码

来自分类Dev

减少日志记录的样板

来自分类Dev

减少redux-thunk样板

来自分类Dev

如何减少此功能的样板?

来自分类Dev

如何减少此功能的样板?

来自分类Dev

如何使用Kleisli减少样板

来自分类Dev

如何在单个项目存在的列表理解中减少模式匹配的样板

来自分类Dev

减少C ++中的代码重复:在略有不同的项目中使用相同的样板片段

来自分类Dev

减少C ++模板代码上的样板代码

来自分类Dev

样板太多,如何减少POJO生成器?

来自分类Dev

从资源中删除样板属性

来自分类Dev

在Bluemix中创建定制样板

来自分类Dev

在Flask应用中重用样板代码

来自分类Dev

Haskell中AST的无样板注释?

来自分类Dev

在C ++中合并样板vector <>代码

来自分类Dev

在Flask应用中重用样板代码

来自分类Dev

从HTML页面中删除样板内容

来自分类Dev

打字稿 - 从我的函数中删除样板

来自分类Dev

减少/减少 CUP 中的冲突

来自分类Dev

抽象类充当列表管理器(包含列表的列表)以减少样板代码?

来自分类Dev

如何使用map和reduce减少play框架json读取的样板代码?

来自分类Dev

如何减少react-redux样板-我尝试创建ComponentFactory,但出现React-redux错误

来自分类Dev

有没有办法减少Flutter中NavigationRail中每个元素的高度?

来自分类Dev

如何减少数据表中项目之间的间距并使文本使用Flutter对齐

Related 相关文章

热门标签

归档