Flutter中DropdownButton的onChanged无法适配命名参数函数问题
问题核心在于DropdownButton的onChanged回调要求的函数签名是void Function(String?)?——也就是接受一个位置参数的函数,但你定义的onServerChanged是带required修饰的命名参数函数,两者类型不兼容,因此触发报错。
要实现「调用时必须指定参数名」的需求,最直接的解决方式是用匿名函数做一层参数转换包装:
void onServerChanged({required String? value}) { //... } DropdownButton<String>( //... onChanged: (String? newValue) { // 此处必须显式指定参数名value:,满足你避免重构静默错误的需求 onServerChanged(value: newValue); }, ),
这种方式既符合onChanged的参数格式要求,又强制你在调用自定义函数时必须写参数名,完全匹配你的需求。
内容的提问来源于stack exchange,提问作者TheMortiestMorty
相关产品推荐
相关产品推荐

