You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flutter中将用户ID值传递到多个不同页面?

解决方案

Flutter的Navigator.pushNamed方法本身支持通过arguments参数传递任意类型的数据,你可以按以下步骤修改代码实现ID传递:

1. 修改HomePage跳转逻辑

在点击按钮触发跳转时,把用户ID作为参数传入arguments:

// HomePage里ElevatedButton的onPressed修改为
onPressed: () {
  // 这里的1是User 1对应的ID,你换成实际动态的用户ID即可
  Navigator.pushNamed(context, 'pageOne', arguments: 1);
},

首页界面示意图

2. 修改PageOne接收参数并继续传递

在PageOne的build方法中获取传递过来的ID,需要继续传递到PageTwo的话同样走arguments参数即可:

import 'package:flutter/material.dart';

class PageOne extends StatefulWidget {
  const PageOne({Key? key}) : super(key: key);

  @override
  _PageOneState createState() => _PageOneState();
}

class _PageOneState extends State<PageOne> {
  @override
  Widget build(BuildContext context) {
    // 获取传递过来的ID
    final int? userId = ModalRoute.of(context)?.settings.arguments as int?;
    return Scaffold(
      appBar: AppBar(
        title: const Text('PageOne'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            // 显示获取到的ID,为空时显示占位符
            Text('Id: ${userId ?? '未获取到ID'}'),
            ElevatedButton(
              child: const Text('Send id to page two'),
              onPressed: () {
                // 继续把ID传递到PageTwo
                Navigator.pushNamed(context, 'pageTwo', arguments: userId);
              },
            ),
          ],
        ),
      ),
    );
  }
}

PageOne界面示意图

可选:路由表注册时强校验参数类型

如果你希望在路由跳转时就校验参数类型避免类型转换错误,可以在MaterialApp的onGenerateRoute配置中处理:

MaterialApp(
  // 其他配置...
  onGenerateRoute: (settings) {
    switch (settings.name) {
      case 'pageOne':
        // 校验参数是否为int类型
        final int userId = settings.arguments as int;
        return MaterialPageRoute(
          builder: (context) => PageOne(),
          settings: RouteSettings(arguments: userId),
        );
      // 其他路由配置...
      default:
        return MaterialPageRoute(builder: (context) => const HomePage());
    }
  },
);

内容的提问来源于stack exchange,提问作者Miguel Patiño

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 23:30:05