【发布时间】: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