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
相关产品推荐
相关产品推荐

