문제
원인
Hero 위젯이 FutureBuilder 내부에 존재하여 렌더링이 지연됨.tag 값이 중복되거나 정확히 일치하지 않음.Image.network가 네트워크에서 이미지를 불러오기 전에 전환되어 대상이 없음.tag 값을 가진 Hero가 같은 화면에 여러 개 존재함.해결 방법
Hero 위젯은 FutureBuilder 바깥에 배치.tag를 고유하게 설정 Image.network에 loadingBuilder를 추가하여 렌더링 타이밍 확보tag에 prefix를 붙여서 고유하게 만든다.'featured_${movie.id}', 'popular_${movie.id}'DetailPage로 이동 시 heroTag 인자를 명시적으로 넘기고, 해당 값을 사용.결과
tag 값을 가진 Hero가 같은 화면에 여러 개 존재함. 중복 렌더링 되더라도 Hero는 한 번만 있어야 한다.증상
원인
_get() 함수에서 API endpoint 파라미터를 무시하고 항상 'movie/now_playing' 경로를 호출함.final response = await http.get(
Uri.parse('https://api.themoviedb.org/3/movie/now_playing'), // 잘못된 하드코딩
headers: { ... }
);
final response = await http.get(
Uri.parse('$_baseUrl/$endpoint'), // 전달된 endpoint를 정확히 사용
headers: { ... }
);
증상
원인
.env 파일에 API 키 누락 또는 오타
flutter_dotenv 초기화 누락
해결 방법
.env 파일 작성TMDB_API_KEY=your_actual_key
main 함수에서 dotenv.load() 호출void main() async {
await dotenv.load();
runApp(MyApp());
}
.env 파일이 .gitignore에 포함되었는지 확인
TMDB 개발자 콘솔에서 v4 Access Token으로 변경