如何在Flutter中将有状态的小部件转换为无状态的小部件?

时间:2020-04-23 12:22:31

标签: flutter dart flutter-layout

我有一个有状态的小部件,我想将其转换为无状态的小部件。我知道如何将无状态小部件转换为有状态小部件。就像无状态小部件一样,有任何可用的快捷方式来转换有状态小部件。

我正在使用Android Studio。 谢谢:)

6 个答案:

答案 0 :(得分:2)

直到现在还没有键盘快捷键

答案 1 :(得分:2)

一个简单的把戏

    class Counter extends StatelessWidget {
//   @override
//   _CounterState createState() => _CounterState();
// }

// class _CounterState extends State<Counter> {
  @override
  Widget build(BuildContext context) {
    return Container(
      
    );
  }
}

只需在两者之间进行注释,然后将statefulwidget更改为statelesswidget

答案 2 :(得分:2)

您可以使用@Nirmal 的技巧来转换为无状态和重命名变量(必须从 widget.variable 转换为变量),您只需查找 widget. 并替换为空值 像这样然后点击全部替换

enter image description here

答案 3 :(得分:0)

Android Studio上没有捷径。最佳选择是将“ StatefulWidget”更改为“ StatelessWidget”,然后删除关联的样板代码。

seq_task

更改为:

class TaskTile extends StatefulWidget {
  @override
  _TaskTileState createState() => _TaskTileState();
}

答案 4 :(得分:0)

将光标悬停在StatelessWidget上并使用Option + return,IDE将显示将此类转换为Stateful Widget的方法。点击该选项,将为您生成以下代码。

https://github.com/flutter/flutter-intellij/issues/3084

答案 5 :(得分:-1)

在大多数情况下,这甚至没有任何意义。无状态小部件是有状态小部件的子集。这意味着每个无状态小部件也是一个有状态小部件。

但并非每个有状态小部件都是无状态的。因此,如果您要“转换”代码,则有可能破坏代码。