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

Flutter新手求助:如何从其他页面向无状态组件传递参数?

向Flutter无状态组件传递参数的实现方式

把有状态组件改成无状态组件很简单,核心就是继承StatelessWidget,并在类的构造函数里声明需要传递的参数,具体实现如下:

1. 定义无状态组件

将原来的StatefulWidget替换为StatelessWidget,去掉createState方法,直接在组件类里声明参数:

class ProfileOthers extends StatelessWidget {
  // 构造函数,required标记必填参数,super.key处理组件key
  const ProfileOthers({super.key, required this.data});

  // 声明需要接收的参数,用final保证不可变
  final Map<String, dynamic> data;

  @override
  Widget build(BuildContext context) {
    // 在这里直接使用this.data即可,比如展示data里的内容
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text("用户名:${data['username']}"),
            Text("年龄:${data['age']}"),
          ],
        ),
      ),
    );
  }
}

2. 在其他页面调用组件

和调用有状态组件的方式一致,直接在构造函数里传入参数即可:

// 示例:在某个页面通过路由跳转传递参数
Navigator.push(
  context,
  MaterialPageRoute(
    builder: (context) => ProfileOthers(
      data: {
        "username": "张三",
        "age": 28,
      },
    ),
  ),
);

关键区别说明

无状态组件不需要维护内部状态,所以不需要State子类和createState方法。参数直接定义在组件类本身,并且必须是final类型——这是因为无状态组件的属性不可变更,符合其“无状态”的设计特性。

内容的提问来源于stack exchange,提问作者Wanner Desparno

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 06:03:23