2

For example, i am call the controller.dispose() when page dispose, i also have to call the 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();
  }

I see ChangeNotify source code about dispose

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

I think is cleared listener, i am not need to call the removeListener method. But somebody tell me i need call the reamoveListener method before dispose method. I feel confused and want someone to tell me i am right or wrong. Thanks in advance!

xyh
  • 33
  • 3

1 Answers1

1

Just called

_controller.dispose();

you don't need to call _controller.removeListener(_listener);

Abu Anwar
  • 194
  • 1
  • 7