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

Flutter如何将父组件接收的路由参数传递给子组件

Flutter 子组件接收父组件路由传值实现方案

你当前的问题是子组件没有定义接收userLogin参数的入口,父组件调用子组件时也没有透传对应值,按以下两步修改即可正常使用:

第一步:改造子组件,新增参数接收

给_MainInfoWidget添加final String userLogin的必填属性,修改后代码如下:

class _MainInfoWidget extends StatelessWidget {
  final String userLogin;
  const _MainInfoWidget({Key? key, required this.userLogin}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.symmetric(vertical: 20),
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.center,
        children: [
          Icon(
            Icons.telegram_sharp,
            color: iconColor,
            size: 64,
          ),
          SizedBox(height: 20),
          Text('Password',
              style: AppAuthTitleStyle.LinkButton),
          SizedBox(height: 20),
          Text(
            'Use password for $userLogin',
            style: AppDescribeTittleStyle.LinkButton,
            textAlign: TextAlign.center,
          ),
        ],
      ),
    );
  }
}

第二步:父组件调用子组件时透传值

StatefulWidget的Widget属性在State类中需要通过widget.属性名访问,修改父组件中初始化_MainInfoWidget的代码:

// 父组件build方法中ListView部分修改为
child: ListView(
  children: [
    _MainInfoWidget(userLogin: widget.userLogin),
  ],
),

注意:如果后续嵌套层级更深,逐层传参逻辑会变繁琐,这种场景可以使用Provider、GetX等状态管理方案跨组件共享数据,当前两层组件的场景直接传参是最简单高效的实现方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 05:30:53