【问题标题】:Removing listerers before dispose flutter在处理颤动之前删除listerers
【发布时间】:2020-08-28 18:42:23
【问题描述】:

如果我在 initState() 中初始化一个观察者,例如

textController.addListener(textTypedListener);

在处理文本控制器之前是否需要手动删除监听器?还是 dispose 会自动处理这个问题。

例如。选项 1

 @override
  void dispose() {
    textController.removeListener(textTypedListener);
    textController.dispose();
    super.dispose();
  }

选项 2

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

哪个最好?

非常感谢。

【问题讨论】:

    标签: flutter


    【解决方案1】:

    根据Handle changes to a text field的flutter文档中给出的Interactive Example,评论说调用dispose也会移除监听器强>。

    所以第二个选项是最好的。

    【讨论】:

    • 好的,谢谢。这是所有控制器的情况吗?不仅仅是 TextEditingWidget。
    • @ebg11 是的
    猜你喜欢
    • 2021-03-17
    • 1970-01-01
    • 2017-02-06
    • 1970-01-01
    • 2017-08-18
    • 2011-02-23
    • 2023-03-29
    • 2017-07-31
    • 2020-01-29
    相关资源
    最近更新 更多