myMind.build' ('Future<bool> Function()') isn't a valid override of 'AutoDisposeNotifier.build' ('bool Function()'). (Documentation)
The member being overridden (auto_dispose.dart:24).
대충 코드는 이러하다.
@riverpod으로 생성된 프로바이더 코드의 build함수에 Future로 리턴타입을 지정해줬는데, 위와 같은 오류가 나왔고, 찾아보니까 반드시 동기함수가 들어가야한다는 말이 있었다.
제목 : 10/20 오답노트 -> [flutter] 비동기와 함께하는 BuildConext
카페에 와서 공부를 하다가 어쩌다보니 비슷한 상황을 다른 블로그에서 찾게 되어 가지고 오게 됨.
하단 출처의 docs를 읽어보면 아래와 같다 .
세부 사항
비동기 공백을 가로질러 BuildContext를 사용하지 마십시오.나중에 사용하기 위해 BuildContext를 저장하면 쉽게 진단하기 어려운 충돌이 발생할 수 있습니다. 비동기 공백은 암묵적으로 BuildContext를 저장하는 것이며 코드를 작성할 때 > 간과하기 쉬운 일부입니다.
BuildContext를 사용할 때는 비동기 공백 후 마운트된 속성을 확인해야 합니다
정리를 해보면, buildContext를 비동기와 함께 사용하면 await 이후에 어디서 오류가 발생했는지 확인하기 힘들다고 하기 때문이다.
또한 이 글을 보면서 하나 확인한것은, 그냥 문법적인 오류인줄 알았지만, 플러터쪽에서 제시한 lint에 해당하는 것이다.
docs글 상단을 보면 Tools Linter > rules> > use_build_context_synchronously
라고 카테고리를 나눈 것을 확인할 수 있다.
플러터 기초를 학습하고 공부할 줄만 알았지 , 잊고 지냈던 lint가 문득 떠올라서 이를 맞춰가고 커스텀하며 사용해야겠다는 것을 깨달았다.
[reference-blog] : https://th-biglight.tistory.com/30
[flutter docs] : https://dart.dev/tools/linter-rules/use_build_context_synchronously