我刚刚开始喋喋不休地开始开发我的第一个应用程序,但面临将数据从一个dart文件路由到另一个dart文件的问题。我的代码示例如下所示。
我在main.dart中定义了这样的路由
final routes = <String, WidgetBuilder>{
Login.tag: (context) => new Login(),
HomeView.tag: (context) => new HomeView(),
};
我有两个单独的登录和主页文件
在Login文件中,还定义了标记,并且当用户进行身份验证时,它将导航到HomeView。
// tag defination
static String tag = 'login';
//Navigate on successfull login
Navigator.of(context).pushNamed(HomeView.tag);
那么,我如何将该navigator命令中的userdata传递给使用JSON格式的REST Api进行提取的HomeView。
答案 0 :(得分:3)
我在我的flutter应用中使用包fluro进行路由。我们可以将JSON数据从一个屏幕传递到另一个屏幕,如下所述
添加依赖项
dev_dependencies:
fluro: ^1.2.1
定义路由器
Router router = new Router();
定义路线,其中'data'是您要传递的Json字符串
router.define('home/:data', handler: new Handler(
handlerFunc: (BuildContext context, Map<String, dynamic> params) {
return new Home(params['data'][0]);
}));
导航如下
var bodyJson = '{"buyerId":1281,"orgId":3041}';
router.navigateTo(context, '/home/$bodyJson');
您可以在主屏幕中收到Json字符串。
示例项目可用here
答案 1 :(得分:0)
@MuhammadIkhlas Shyju的解决方案应该可以正常工作。因为传入了对象实例,所以得到null。首先将对象转换为字符串。像这样:
var bodyJson = json.encode(yourObject.toJson())
router.navigateTo(context, '/home/$bodyJson')