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);
  }
}
相关推荐
sheji34169 小时前
【开题答辩全过程】以 Web数据挖掘在电子商务中的应用研究为例,包含答辩的问题和答案
前端·人工智能·数据挖掘
whltaoin9 小时前
Vue 与 React 深度对比:技术差异、选型建议与未来趋势
前端·前端框架·vue·react·技术选型
敲敲敲-敲代码10 小时前
web系统(asp.net和C#)
前端·c#·asp.net
IT_陈寒10 小时前
Python开发者必坑指南:3个看似聪明实则致命的‘优化’让我损失了50%性能
前端·人工智能·后端
初圣魔门首席弟子10 小时前
c++中this指针使用bug
前端·c++·bug
ZFJ_张福杰12 小时前
【区块链】Fiat24 深度解读(含 Flutter 集成与 SDK 骨架)
flutter·web3·区块链·钱包
古希腊被code拿捏的神12 小时前
【Flutter】抽象类的运用(abstract与implements的实践)
flutter
ZFJ_张福杰12 小时前
【Flutter】GetX最佳实践与避坑指南
android·flutter·ios·getx
AI视觉网奇16 小时前
rknn yolo11 推理
前端·人工智能·python
gplitems12316 小时前
Gunslinger – Gun Store & Hunting WordPress Theme: A Responsible
开发语言·前端·javascript