This error might indicate a memory leak if setState() is being called because another object is reta

1305 단어 Flutter구덩이
E/flutter ( 4976): This error happens if you call setState() on a State object for a widget that no longer appears in the widget tree (e.g., whose parent widget no longer includes the widget in its build). This error can occur when code calls setState() from a timer or an animation callback.
E/flutter ( 4976): The preferred solution is to cancel the timer or stop listening to the animation in the dispose() callback. Another solution is to check the “mounted” property of this object before calling setState() to ensure the object is still in the tree.
E/flutter ( 4976): This error might indicate a memory leak if setState() is being called because another object is retaining a reference to this State object after it has been removed from the tree. To avoid memory leaks, consider breaking the reference to this object during dispose().
해결 방법: setState를 호출하기 전에 mounted를 판단하면 된다
if (mounted) {
   setState(() {
  	//....
   })
 }

mounted: 이 [state] 객체가 현재 트리에 있는지 여부입니다.[state] 객체를 만든 후 [initState]를 호출하기 전에 프레임은 [BuildContext]와 연결하여 [state] 객체를 로드합니다.프레임워크가 [dispose]를 호출하기 전에 [state] 대상은 마운트 상태를 유지하고 그 후에 프레임워크는 [state] 대상에게 다시 [build]를 요구하지 않습니다.[mount]가true가 아니면 [setState]를 호출하는 것이 잘못되었습니다.
디스포스 이후에 setState 대상을 호출할 수 없으면 메모리 유출을 초래할 수 있다는 뜻이다

좋은 웹페이지 즐겨찾기