[문제 1]
홈페이지 뷰모델에서 moviefetch를 구현하고자 했다.
처음에는 각 기능별로 fetch를 구현하면 되겠다는 생각에 메서드를 여러개 생성했는데
그렇게 구현해보니 state를 통해 리스트를 어떻게 불러와야 할 지 난감했다.
[해결방법]
무비 리스트라는 클래스를 새로 만들어서 각 메서드를 업데이트 해주는 방식으로 구현했다.
Future<void> fetchMovies() async {
try {
final popularMovies =
await ref.read(fetchMoviesUsecaseProvider).getPopular();
final nowPlayingMovies =
await ref.read(fetchMoviesUsecaseProvider).excute();
final topRatedMovies =
await ref.read(fetchMoviesUsecaseProvider).getTopRated();
final upcomingMovies =
await ref.read(fetchMoviesUsecaseProvider).getUpcoming();
state = state.copyWith(
nowPlayingMovies: nowPlayingMovies!,
popularMovies: popularMovies!,
topRatedMovies: topRatedMovies!,
upcomingMovies: upcomingMovies!);
} catch (e) {
print(e);
}
}
뷰모델에서 각각의 리스트를 업데이트 할 수 있도록 코드를 작성해주고
final movies = ref.watch(homePageViewModel);
movies.popularMovies[0].posterPath
홈페이지에서 이렇게 불러와서 사용해주는 것으로 해결했다.
[문제 2]
flutter: Error fetching movie detail: ClientException with SocketException:
Failed host lookup: 'api.themoviedb.org' (OS Error: nodename nor servname provided,
or not known, errno = 8), uri=https://api.themoviedb.org/3/movie/558449
영화 포스터를 눌러 상세 정보를 보여주는 detail 페이지로 넘어가면 이런 오류가 뜨기 시작...
════════ Exception caught by image resource service ════════════════════════════
Failed host lookup: 'image.tmdb.org' (OS Error: nodename nor servname provided,
or not known, errno = 8)
════════════════════════════════════════════════════════════════════════════════
nslookup api.themoviedb.org
터미널에서 dns 설정 확인을 위해 위와 같은 코드를 입력했더니
;; Got recursion not available from ###, ...
이러한 결과를 얻었다.
찾아보니 DNS 서버에서 **재귀적 조회(recursive query)**가 비활성화되어 있을 때 발생하는 오류라고..
[해결 방법]
현재 사용하는 DNS 서버를 변경하기로.
일반적으로 신뢰할 수 있는 공개 DNS 서버로 설정하는 것이 좋다고 한다.
macOS에서 DNS 변경
시스템 환경설정 → 네트워크 → 사용하는 네트워크 선택.
DNS 탭에서 새 DNS 서버 추가:
8.8.8.8
8.8.4.4
이렇게 해봤는데 아래의 오류는 해결되지 않음
════════ Exception caught by image resource service ════════════════════════════
Failed host lookup: 'image.tmdb.org' (OS Error: nodename nor servname provided,
or not known, errno = 8)
디테일 페이지에 머무는 동안 발생하는 오류이고 홈페이지로 돌아왔을 때
이미지가 표시 안된다.
떠 있는 아무 포스터나 눌러서 갔다 오면 (refresh 같은 느낌으로 )
이미지들이 잘 표시된다..
'TIL' 카테고리의 다른 글
[트러블슈팅] 팀프로젝트 - sns 앱 만들기 (0) | 2025.01.06 |
---|---|
[TIL] 영화 정보 앱 구현 - 클린 아키텍처 (0) | 2025.01.02 |
[TIL] 클린 아키텍처(Clean Architecture) (0) | 2024.12.24 |
[TIL] git 브랜치 강제 병합 (1) | 2024.12.23 |
[TIL] .env 인식하지 못하는 오류 (1) | 2024.12.23 |