본문 바로가기
Flutter/Flutter FAQ

Flutter 경로에 대한 생성기를 찾을 수 없습니다., Could not find a generator for route

by 베타코드 2023. 12. 18.
반응형

질문


플러터에 대해 초보자이며 플러터에서 라우트와 페이징에 관한 예외를 받았습니다.

제스처를 처리하는 동안 다음 단언문이 발생했습니다:
_MaterialAppState에서 "/listadecompras" 경로에 대한 생성기를 찾을 수 없습니다.

코드에서 일부 발췌:

import 'package:flutter/material.dart';

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
// ...                    
                return new ListTile(
                  onTap: () {                                         
                    Navigator.pushNamed(context, "/listadecompras");
                  },
// ...
}


class ListaDeCompras extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new Scaffold(
// ...
}
}


void main() {
runApp(new MaterialApp(
    home: new MyApp(), 
    routes: <String, WidgetBuilder>{
        "/listadecompras": (BuildContext context) => new ListaDeCompras()
    }
));
}

도움을 주실 수 있는 분 계신가요? 미리 감사드립니다.


답변


인스턴스화된 두 개의 MaterialApp 위젯 때문에 문제가 발생합니다. MyApp 클래스에서 하나를 제거하고 Scaffold로 변경해야합니다.

예시:

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new Scaffold(
// ...                    
                return new ListTile(
                  onTap: () {                                         
                    Navigator.pushNamed(context, "/listadecompras");
                  },
// ...
}

문제는 코드가 가장 가까운 MaterialApp에서 경로를 해결하려고 한다는 것입니다. 그러나 해당 MaterialApp에 경로 정의가 없습니다. 따라서 위젯 트리의 루트로 하나의 MaterialApp만 사용해야합니다.

반응형

댓글