本案例只用于改造,直接复制是无法生效的
在主程序增加
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);
}
}