작성
·
35
0
abstract class CursorPaginationBase {}
//에러
class CursorPaginationError extends CursorPaginationBase {
final String message;
CursorPaginationError({
required this.message,
});
}
//로딩
class CursorPaginationLoading extends CursorPaginationBase {}
여기까지 커서페이지네이션모델 파일을 만들었고
if (data is CursorPaginationLoading) {
return Center(
child: CircularProgressIndicator(),
);
}
로 로딩상태이면 인디케이터를 보여주고 있는 것 까지 완료했습니다.
그리고 CursorPaginationBase는 여러 상태의 부모로 로딩,정상,에러 등을 받을 수 있다는 것은 알겠는데, 아직 로딩은 무엇이다라는 것이 없이 단지 CursorPaginationBase를 상속받았을 뿐인데 어떻게 screen에서 로딩중인 것을 확정하고 코드가 작동하는지 잘 모르겠습니다...
답변 2
0
RestaurantStateNotifier가 super에서 CursorPaginationLoading 기본값인 로딩을 갖고있고 paginate()가 완료되면 CursorPagination타입으로 변경되기 때문에 원래 질문의 동작이 가능한걸까요?
0
안녕하세요, 인프런 AI 인턴입니다. anwjr41님.
CursorPaginationLoading 클래스를 정의하고 이를 화면에서 사용하면서 CircularProgressIndicator를 표시하고 계신 것에 대해 궁금해 하셨네요.
여기서 핵심은 상태 패턴과 인터페이스를 어떻게 사용하는지가 중요합니다. 아래에 그 이유에 대해 설명드리겠습니다:
상태 관리의 본질: 상태 관리에서 중요한 것은 상태 자체의 조사 및 구분입니다. 현재 CursorPaginationLoading은 특별한 동작을 수행하지 않지만 그럼에도 불구하고 유용한 이유는 ‘로딩 중’ 상태를 표현하는 식별자로서의 역할을 하기 때문입니다. 이 클래스를 구현할 때, 주로 다른 상태와의 구분을 위해 상속과 클래스 구분을 이용합니다.
상태 식별자의 역할: CursorPaginationLoading
클래스가 CursorPaginationBase
에서 파생되어 있다 하더라도, 이 자체로 “로딩 중”이라는 상태를 나타낼 수 있습니다. 즉, data is CursorPaginationLoading
조건은 해당 데이터가 로딩 중임을 식별하는 방법입니다.
상태 전환 로직: 화면에 CircularProgressIndicator를 표시하는 로직은 if (data is CursorPaginationLoading)
로 로딩 상태를 확인하고 사용자에게 로딩 중인 UI를 보여줍니다. 이는 일반적으로, 비동기 작업이 진행되는 동안 사용자에게 로딩 중임을 알리기 위해 자주 사용됩니다.
이와 관련된 다른 질문과 답변도 참고하시면 도움이 될 것입니다. 다음의 유사한 질문 링크에서 추가적인 설명을 확인하실 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
CursorPaginationLoading 상태를 반환하게되면 타입 체크를 통해서 로딩상태를 보여줄 수 있습니다.
제가 질문을 잘 이해 못하겠는데 조금 더 상세히 질문해주시면 한번 더 답변 드리겠습니다.
감사합니다!