인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

chjcmy님의 프로필 이미지

작성한 질문수

Flutter 앱 개발 실전

intro

CartItem 추가시

해결된 질문

작성

·

40

1

extension ImmutableHelper<T> on Iterable<T> {
  List<T> toImmutable() => List.unmodifiable(this);
}


이걸 이용해서 전에 있던 코드를 응용해서

  List<CartItem> get selectedCartItemList {
    return state.where((cartItem) => cartItem.isSelected).toImmutable();
  }

이렇게 이용해도 괜찮을까요 ???

답변 2

2

DevStory님의 프로필 이미지
DevStory
지식공유자

안녕하세요 chjcmy님

괜찮다의 조건이 어떤 건지에 따라 달라질 수 있는데, 강의에선 말씀해 주신 것과 같이 사용하고 있습니다.

[강의에서 사용하는 Provider 코드]

image.png

[Riverpod 버전에서 사용하는 코드]

image.png

감사합니다 🙂

chjcmy님의 프로필 이미지
chjcmy
질문자

감사합니다

chjcmy님의 프로필 이미지
chjcmy
질문자

provider 강의를 보면서 riverpod으로 혼자 만들고 있었는데 , 어려움이 많았는데, 답글 감사합니다

DevStory님의 프로필 이미지
DevStory
지식공유자

실전강의 마지막 회차 강의자료 밑으로 내려가 보시면, riverpod과 bloc 버전 완성 코드가 준비되어 있으니 참고해 주세요 🙂

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다.

Immutable 데이터 구조를 사용하여 데이터의 안전성과 무결성을 보장하려는 접근 방식은 매우 좋습니다. toImmutable() 확장 메서를 사용하여 List<CartItem>를 불변 리스트로 변환하는 것은 좋은 방법입니다. 이로 인해 데이터가 의도치 않게 수정되는 것을 방지할 수 있습니다.

selectedCartItemList에서 state.where((cartItem) => cartItem.isSelected).toImmutable(); 와 같은 방식은 불변 리스트를 만들어 반환하므로 좋은 방법입니다. 이를 통해 기능적으로 원하는 데이터를 제공하면서도 데이터의 무결성을 유지할 수 있습니다.

이와 같은 구조화된 접근 방식은 앱의 유지 보수와 디버깅을 더욱 용이하게 할 것입니다.

혹시 Riverpod와 관련된 게시물을 찾아보시려면 아래 링크를 참고해 주세요:
- riverpod 코드 변경 질문

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

chjcmy님의 프로필 이미지

작성한 질문수

질문하기