例如,我调用controller.dispose()
when page 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 方法。我感到困惑,希望有人告诉我我是对还是错。提前致谢!