已弃用 TextField.canRequestFocus
概述
#TextField.canRequestFocus
已弃用。相同的功能可以通过设置 TextField
的 FocusNode
的 canRequestFocus
参数来实现。
背景
#TextField.canRequestFocus
的添加是为了支持 DropdownMenu
,因为 DropdownMenu
中的 TextField
有时不是交互式的。然而,相同的功能可以通过设置 TextField
的 FocusNode
的 canRequestFocus
参数来实现。DropdownMenu
已迁移到此方法,其他用例也应遵循相同的模式。
在调试模式下运行使用 TextField.canRequestFocus
的应用程序时,会显示以下错误:“请改用 focusNode
。”具体来说,这意味着用户应将一个 FocusNode
传递给 TextField.focusNode
,并设置 FocusNode.canRequestFocus
参数。
迁移指南
#要进行迁移,请移除 TextField.canRequestFocus
参数。创建一个 FocusNode
,将其 FocusNode.canRequestFocus
参数设置为所需值,并将其传递给 TextField.focusNode
。
迁移前的代码
dart
class _MyWidgetState extends State<MyWidget> {
@override
Widget build(BuildContext context) {
return TextField(
canRequestFocus: false,
);
}
}
迁移后的代码
dart
class _MyWidgetState extends State<MyWidget> {
final FocusNode _focusNode = FocusNode(canRequestFocus: false);
@override
Widget build(BuildContext context) {
return TextField(
focusNode: _focusNode,
);
}
}
时间线
#已发布版本:已回滚,等待重新发布
稳定版本:尚未发布
参考资料
#API 文档
相关问题
相关 PR