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);
  }
}
相关推荐
浮芷.2 小时前
Flutter 框架跨平台鸿蒙开发 - AR动物互动应用
flutter·ar·harmonyos
xiaotao1312 小时前
第九章:Vite API 参考手册
前端·vite·前端打包
午安~婉2 小时前
Electron桌面应用聊天(续)
前端·javascript·electron
彧翎Pro3 小时前
基于 RO1 noetic 配置 robosense Helios 32(速腾) & xsense mti 300
前端·jvm
小码哥_常3 小时前
解锁系统设置新姿势:Activity嵌入全解析
前端
之歆3 小时前
前端存储方案对比:Cookie-Session-LocalStorage-IndexedDB
前端
哟哟耶耶3 小时前
vue3-单文件组件css功能(:deep,:slotted,:global,useCssModule,v-bind)
前端·javascript·css
是罐装可乐3 小时前
深入理解“句柄(Handle)“:从浏览器安全到文件系统访问
前端·javascript·安全
加农炮手Jinx4 小时前
Flutter 组件 conventional 适配鸿蒙 HarmonyOS 实战:约定式提交标准,构建自动化版本治理与 CI/CD 质量治理架构
flutter·harmonyos·鸿蒙·openharmony
王码码20354 小时前
Flutter 三方库 appstream 的鸿蒙化适配指南 - 驾驭 Linux 生态元数据规范,打造高性能、标准化、国际化的 OpenHarmony 桌面应用商店分发基石
flutter·harmonyos·鸿蒙·openharmony