Flutter如何通过GlobalKey调用组件内的方法
本案例只用于改造,直接复制是无法生效的
在主程序增加
final GlobalKey<SortButtonState> sortButtonKey = GlobalKey<SortButtonState>();useGlobalKey(){sortButtonKey.currentState?.updateSort('all', SortType.none);}//调用updateSortuseGlobalKey()//调用的地方SortButton(buttonList: buttonList,onChanged: onSortChanged,key: sortButtonKey,//在这加sortButtonKey)
组件内
const SortButton({...其他参数Key? key,//从这开始添加}) : super(key: key);//确保SortButtonState 内有updateSort方法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);}
}