【问题标题】:How to convert a Stateful widget into a Stateless widget in flutter?如何在颤动中将有状态小部件转换为无状态小部件?
【发布时间】:2020-08-06 18:32:10
【问题描述】:

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

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

【问题讨论】:

标签: flutter dart flutter-layout


【解决方案1】:

一个简单的技巧

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

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

只需在两者之间进行注释并将有状态小部件更改为无状态小部件

【讨论】:

    【解决方案2】:

    目前还没有键盘快捷键

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        Android Studio 上没有快捷方式。最佳选项将“StatefulWidget”更改为“StatelessWidget”并删除相关的样板代码。

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

        改为:

         class TaskTile extends StatelessWidget {
        
            }
        

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

          • 他的问题恰恰相反!
          【解决方案6】:

          android studio上简单三步将有状态widget转为无状态widget

          1. 评论有状态小部件的状态类并删除评论区。
          2. 将类扩展的有状态小部件名称更改为 statelessWidget
          3. 按下control R,它会在代码上方打开两个用于替换功能的文本字段,按widget.进入上方文本字段,将下方留空 ,然后点击全部替换按钮。 此过程将帮助您将有状态 Widget 转换的所有最终变量转换回它们之前的状态。

          【讨论】:

            【解决方案7】:

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

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

            【讨论】:

            • StatelessWidget 不是 StatefulWidget 的子类,当您发现不再需要有状态的小部件并想快速转换为无状态的小部件时,这很有意义
            • 我没有提到它是一个子类。我的意思是每个无状态小部件都可以是有状态小部件,但并非每个有状态小部件都可以是无状态小部件。当然可以创建这样的快捷方式,但如果使用不正确,它可能会破坏代码的功能(如果某些部分取决于小部件的状态)。我认为这就是为什么现在不存在这样的捷径。
            猜你喜欢
            • 2020-01-23
            • 2021-09-21
            • 2022-11-12
            • 2019-10-06
            • 2021-02-16
            • 2021-12-15
            • 2021-06-11
            • 2021-09-15
            • 1970-01-01
            相关资源
            最近更新 更多