Удалите слушателя из FocusNode с помощью Flutter Hooks
Я недавно начал использовать Flutter Hooks, и мне ДЕЙСТВИТЕЛЬНО это понравилось. Мне удалось преобразовать несколько моих StatefulWidgets в HookWidgets, и это довольно круто. Единственное, что я пытаюсь понять, это как правильно удалить слушателей из FocusNode, созданного useFocusNode.
Если я сделаю это способом StatefulWidget , он, похоже, будет работать хорошо (в основном, следуя этому примеру из документации Flutter):
class ItemWidget extends StatefulWidget {
...
}
class _ItemWidgetState extends State<ItemWidget> {
...
late FocusNode _focusNode;
@override
void initState() {
super.initState();
_focusNode = FocusNode(debugLabel: widget.key.toString());
_focusNode.addListener(_handleFocusChange);
}
void _handleFocusChange() {
debugPrint('${_focusNode.debugLabel} has ${_focusNode.hasFocus ? '' : 'lost'} focus');
}
@override
Widget build(BuildContext context) {
...
}
@override
void dispose() {
_focusNode.removeListener(_handleFocusChange);
super.dispose();
}
Но тогда как мне это сделать с помощью WidgetHook и useFocusNode? Я знаю, как создать FocusNode и добавить слушателя, но где его удалить? Следует ли мне использовать для этого useEffect ? Не знаю, как это сделать.
Спасибо!