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

Flutter创建Widget时,访问父级BuildContext的参数是什么?

Flutter中访问父级BuildContext的参数选择

正确答案是1. context。

在Flutter的Widget构建逻辑里,所有Widget的build方法都会接收一个名为context的参数,这个参数就是当前Widget的父级BuildContext(严格来说,它代表当前Widget在Widget树中的上下文节点,通过它可以访问到父级上下文关联的所有资源,比如主题、路由、依赖注入对象等)。

其余选项里的widgetContext、parentContext、buildContext都不是Flutter框架规定的标准参数名称,属于自定义命名,不会被框架自动传递。

示例代码

import 'package:flutter/material.dart';

class ParentContainer extends StatelessWidget {
  const ParentContainer({super.key});

  @override
  Widget build(BuildContext context) {
    // 这里的context是ParentContainer的父级上下文
    return Scaffold(
      backgroundColor: Colors.grey[200],
      body: const ChildCard(),
    );
  }
}

class ChildCard extends StatelessWidget {
  const ChildCard({super.key});

  @override
  Widget build(BuildContext context) {
    // 这里的context就是父级ParentContainer传递来的上下文
    // 用它获取父级的背景色并应用到子组件
    final parentBgColor = Theme.of(context).scaffoldBackgroundColor;
    
    return Center(
      child: Card(
        color: parentBgColor,
        child: const Padding(
          padding: EdgeInsets.all(20),
          child: Text('子组件通过context访问父级上下文'),
        ),
      ),
    );
  }
}

在这个示例中,ChildCard的build方法通过参数context获取到父级ParentContainer所在上下文的主题配置,进而拿到父级Scaffold的背景色,实现了子组件对父级上下文资源的访问。

内容的提问来源于stack exchange,提问作者Jubair Sayeed Linas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 16:33:15