From 17adf282b371b5bbff6ff5c31d6324760bf2e50d Mon Sep 17 00:00:00 2001 From: boyan <17426470+boyan01@users.noreply.github.com> Date: Tue, 1 Nov 2022 10:05:47 +0800 Subject: [PATCH] Fix VisibilityDetector callback unmounted error --- lib/widgets/message_status_icon.dart | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/widgets/message_status_icon.dart b/lib/widgets/message_status_icon.dart index 09bbf14a7d..4b5e8bbfbd 100644 --- a/lib/widgets/message_status_icon.dart +++ b/lib/widgets/message_status_icon.dart @@ -59,8 +59,14 @@ class _VisibilityAwareAnimatedSendingIcon extends HookWidget { Widget build(BuildContext context) { final visible = useState(false); final key = useMemoized(UniqueKey.new); + final isMount = useIsMounted(); return VisibilityDetector( onVisibilityChanged: (info) { + if (!isMount()) { + // onVisibilityChanged called by WidgetsBinding.postFrameCallback, + // so it may be called after unmount. + return; + } visible.value = info.visibleFraction > 0; }, key: key,