【问题标题】:I need removelistener before ChangeNotifier disposed?在 ChangeNotifier 处理之前我需要 removelistener 吗?
【发布时间】:2021-08-11 23:09:20
【问题描述】:

例如,我在页面处理时调用controller.dispose(),我也必须调用controller.removeListener

  TextEditingController _controller = TextEditingController();

  @override
  void initState() {
    super.initState();
    _controller.addListener(_listener);
  }

  void _listener() {
    print(_controller.text);
  }

  @override
  void dispose() {
    // _controller.removeListener(_listener); //It is a must?
    _controller.dispose();
    super.dispose();
  }

我看到ChangeNotify关于dispose的源代码

  @mustCallSuper
  void dispose() {
    assert(_debugAssertNotDisposed());
    _listeners = null;
  }

我认为是清除监听器,我不需要调用 removeListener 方法。但是有人告诉我我需要在 dispose 方法之前调用 reamoveListener 方法。我感到困惑,希望有人告诉我我是对还是错。提前致谢!

【问题讨论】:

    标签: flutter flutter-change-notifier


    【解决方案1】:

    刚刚调用

    _controller.dispose();
    

    你不需要调用 _controller.removeListener(_listener);

    【讨论】:

      猜你喜欢
      • 2020-10-24
      • 2020-12-18
      • 2020-11-03
      • 1970-01-01
      • 2011-02-23
      • 1970-01-01
      • 2020-02-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多