Flutter如何通过GlobalKey调用组件内的方法

本案例只用于改造,直接复制是无法生效的

在主程序增加

dart 复制代码
	  final GlobalKey<SortButtonState> sortButtonKey = GlobalKey<SortButtonState>();
		useGlobalKey(){
			sortButtonKey.currentState?.updateSort('all', SortType.none);
		}
		//调用updateSort
		useGlobalKey()

		//调用的地方
		 SortButton(
                  buttonList: buttonList,
                  onChanged: onSortChanged,
                  key: sortButtonKey,//在这加sortButtonKey
                )

组件内

dart 复制代码
	 const SortButton({
		   ...其他参数
		    Key? key,//从这开始添加
		  }) : super(key: key);

	//确保SortButtonState 内有updateSort方法
  @override
  SortButtonState createState() => SortButtonState();

class SortButtonState extends State<SortButton> {
  String field = 'all';
  SortType sortType = SortType.none;
	
//这个方法就是被调用的
  void updateSort(String f, SortType t) {
    print('updateSort');
    setState(() {
      field = f;
      sortType = t;
    });
    widget.onChanged(field, sortType);
  }
}
相关推荐
2601_955760079 分钟前
如何用 Claude Opus 5 API 批量扩展长尾关键词和文章选题
前端·python·搜索引擎
KaMeidebaby13 分钟前
卡梅德生物技术快报|bli亲和力检测gst:告别批量跑胶:BLI实时酶切监测技术加速GST融合蛋白下游流程优化
前端·网络·数据库·人工智能·算法
触底反弹33 分钟前
🚀 删了数据刷新又回来?3 组件 × 4 回调 × 3 坑讲透 React 父子通信
前端·javascript·react.js
耳东小鹿2 小时前
对象常用方法
前端
GitLqr2 小时前
Flutter 3.44 性能飞跃:深度解析 Android Platform View 的 HCPP 新特性
android·flutter·性能优化
程序员海军2 小时前
一个 AI 应用开发程序员的一天,都在屏幕前忙些什么?
前端·后端·程序员
程序员黑豆2 小时前
鸿蒙应用开发:Stack堆叠组件实战——实现微信消息角标效果
前端·harmonyos
夏幻灵2 小时前
浏览器原理深度解析:从输入 URL 到页面展现的全流程剖析
前端
闲猫3 小时前
Agent工程实践:从WorkFlow到多Agent协作的落地笔记
java·服务器·前端
带娃的IT创业者3 小时前
重新定义前端构建速度:深度解析 SWC 如何用 Rust 颠覆 JavaScript 工具链
前端·javascript·rust·前端构建·swc