Dart 如何从分离抽屉文件调用颤振路径?
我正在按如下方式设置应用程序:Dart 如何从分离抽屉文件调用颤振路径?,dart,flutter,Dart,Flutter,我正在按如下方式设置应用程序: main.dart(导入点3、4、5并映射到路线上) 模块/DrawerMenu.dart(调用以通过路线导航到点3、4、5) 模块/Dashboard.dart(导入点2作为菜单) 模块/Login.dart(导入点2作为菜单) 模块/Profile.dart(导入点2作为菜单) 我尝试了以下代码,但显示了以下错误: I/flutter (28092): #6 _DrawerMenuState.build.<anonymous closure&g
I/flutter (28092): #6 _DrawerMenuState.build.<anonymous closure>
package:route/module/DrawerMenu.dart:45
I/flutter (28092): #7 _InkResponseState._handleTap
package:flutter/…/material/ink_well.dart:511
I/flutter (28092): #8 _InkResponseState.build.<anonymous closure>
package:flutter/…/material/ink_well.dart:566
I/flutter (28092): #9 GestureRecognizer.invokeCallback
package:flutter/…/gestures/recognizer.dart:166
I/flutter (28092): #10 TapGestureRecognizer._checkUp
package:flutter/…/gestures/tap.dart:240
I/flutter (28092): #11 TapGestureRecognizer.acceptGesture
package:flutter/…/gestures/tap.dart:211
I/flutter (28092): #12 GestureArenaManager.sweep
package:flutter/…/gestures/arena.dart:156
I/flutter (28092): #13 _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent
package:flutter/…/gestures/binding.dart:225
I/flutter (28092): #14 _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent
package:flutter/…/gestures/binding.dart:199
I/flutter (28092): #15 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent
package:flutter/…/gestures/binding.dart:156
I/flutter (28092): #16 _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue
package:flutter/…/gestures/binding.dart:102
I/flutter (28092): #17 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket
package:flutter/…/gestures/binding.dart:86
I/flutter (28092): #21 _invoke1 (dart:ui/hooks.dart:233:10)
I/flutter (28092): #22 _dispatchPointerDataPacket (dart:ui/hooks.dart:154:5)
I/flutter (28092): (elided 3 frames from package dart:async)
I/flutter (28092):
I/flutter (28092): Handler: onTap
I/flutter (28092): Recognizer:
I/flutter (28092): TapGestureRecognizer#b7ab7(debugOwner: GestureDetector, state: ready, won arena, finalPosition:
I/flutter (28092): Offset(95.6, 329.1), sent tap down)
I/flutter (28092):
═══════════════════
I/flatter(28092):#6_DrawerMenuState.build。
包装:路线/模块/抽屉菜单。省道:45
I/颤振(28092):#7!
包装:颤振/../material/ink\u井。省道:511
I/flatter(28092):#8#InkResponseState.build。
包装:颤振/../material/ink\u井。省道:566
I/flatter(28092):#9手势识别器.invokeCallback
软件包:flatter/../signatures/recognizer.dart:166
I/颤振(28092):#10 TapGestureRecognitor.U检查
套装:颤振/../signatures/tap.省道:240
I/颤振(28092):#11 TapGestureRecognitor.Accept手势
套装:颤振/../signatures/tap.dart:211
I/颤振(28092):#12个手势aremanager.sweep
套装:颤振/../signatures/arena.飞镖:156
I/颤振(28092):#13#WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent
包装:颤振/手势/装订。省道:225
I/颤振(28092):#14 35; WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent
包装:颤振/../signatures/binding.dart:199
I/颤振(28092):#15#WidgetsFlutterBinding&BindingBase&GestureBinding.#手点事件
包装:颤振/../signatures/binding.省道:156
I/颤振(28092):#16#WidgetsFlutterBinding&BindingBase&GestureBinding.#冲洗点设置
包裹:颤振/../signatures/binding.dart:102
I/颤振(28092):#17#WidgetsFlutterBinding&BindingBase&GestureBinding.#handlePointerDataPacket.#
包装:颤振/../signatures/binding.dart:86
I/flatter(28092):#21 invoke1(省道:ui/hooks.省道:233:10)
I/flatter(28092):#22 dispatchPointerDataPacket(dart:ui/hooks.dart:154:5)
I/颤振(28092):(从包dart中删除3帧:异步)
I/颤振(28092):
I/颤振(28092):处理程序:onTap
I/颤振(28092):识别器:
I/flatter(28092):点击手势识别器#b7ab7(调试所有者:手势检测器,状态:就绪,赢得竞技场,最终位置:
I/颤振(28092):偏移(95.6329.1),发送攻丝下降)
I/颤振(28092):
═══════════════════
我的这些代码:
1.主飞镖
导入“包装:颤振/材料.省道”;
导入“module/Dashboard.dart”;
导入“module/Login.dart”;
导入“module/Profile.dart”;
void main()=>runApp(RouteApp());
类RouteApp扩展StatefulWidget{
@凌驾
_RouteAppState createState()=>RouteAppState();
}
类_RouteAppState扩展状态{
@凌驾
小部件构建(构建上下文){
返回材料PP(
initialRoute:“/”,
路线:{
“/”:(上下文)=>Dashboard(),
“/login”:(上下文)=>login(),
“profile”:(上下文)=>profile()
},
);
}
}
导入“包装:颤振/材料.省道”;
类DrawerMenu扩展StatefulWidget{
@凌驾
_DroperNuState createState()=>\u DroperNuState();
}
类_DrawerMenuState扩展状态{
@凌驾
小部件构建(构建上下文){
回程抽屉(
子:ListView(
儿童:[
UserAccountsDrawerHeader(
accountName:Text('Mulyawan Sentosa'),
accountEmail:Text('mulyawan@flazhost.com'),
),
列表砖(
领先:标志(尺寸:20),
标题:文本(“仪表板”),
onTap:(){
设置状态(){
Navigator.of(context.pushNamed('/');
Navigator.pop(上下文);
});
},
),
列表砖(
领先:标志(尺寸:20),
标题:文本(“登录”),
onTap:(){
设置状态(){
Navigator.of(context.pushNamed('/login');
Navigator.pop(上下文);
});
},
),
列表砖(
领先:标志(尺寸:20),
标题:文本(“概要文件”),
onTap:(){
设置状态(){
Navigator.of(context.pushNamed('/profile');
Navigator.pop(上下文);
});
},
),
],
));
}
}
导入“包装:颤振/材料.省道”;
导入“/DrawerMenu.dart”;
类Dashboard扩展StatefulWidget{
@凌驾
_DashboardState createState()=>\u DashboardState();
}
类_仪表板状态扩展状态{
@凌驾
小部件构建(构建上下文){
返回脚手架(
抽屉:抽屉菜单(),
appBar:appBar(
标题:文本(“仪表板”),
),
主体:容器(
子项:文本('Halaman Dashboard'),
),
);
}
}
导入“包装:颤振/材料.省道”;
类登录扩展StatefulWidget{
@凌驾
_LoginState createState()=>\u LoginState();
}
类_LoginState扩展了状态{
@凌驾
小部件构建(构建上下文){
返回容器(
子项:文本(“Halaman登录”),
);
}
}
导入“包装:颤振/材料.省道”;
导入“/DrawerMenu.dart”;
类配置文件扩展了StatefulWidget{
@凌驾
_ProfileState createState()=>\u ProfileState();
}
类_ProfileState扩展了状态{
@凌驾
小部件构建(构建上下文){
返回脚手架(
抽屉:抽屉菜单(),
appBar:appBar(
标题:文本(“概要文件”),
),
主体:容器(
子项:文本('Halaman Profile'),
),
);
}
}
我需要从分开的抽屉里呼叫route,因为我已经被设置好了。请提供帮助?在onTap函数中,再次删除setState()(因为不需要)。并将弹出功能移到顶部:
onTap: () {
Navigator.pop(context);
Navigator.pushNamed(context, '/profile');
}
使用前面的方法,首先是nav