已弃用的 TextField.canRequestFocus
概述
#TextField.canRequestFocus 已弃用。您可以通过设置 TextField 的 FocusNode 的 canRequestFocus 参数来实现相同的功能。
背景
#添加 TextField.canRequestFocus 是为了支持 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