반응형
질문
플러터에 대해 초보자이며 플러터에서 라우트와 페이징에 관한 예외를 받았습니다.
제스처를 처리하는 동안 다음 단언문이 발생했습니다:
_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
만 사용해야합니다.
반응형
댓글