【问题标题】:Flutter how to refactor large a stateful widget into smaller onesFlutter 如何将大型有状态小部件重构为较小的小部件
【发布时间】:2020-07-11 16:53:05
【问题描述】:

我正在编写一个带有一个非常大的有状态小部件的应用程序,它由 UI 中的三个主要部分组成,所以我想将它重构为 3 个不同的小部件。但是,这 3 个小部件中的每一个都有一个共享的“selectedColor”变量,它可以更改所有三个小部件的颜色。 VS Code 不会让我重构这些小部件,因为它们设置了状态,所以如果我尝试设置状态,它只会抛出一个错误。基本上,如果所有代码都是一大块,那很好,但我怎样才能将我的代码重构为 3 个小部件,同时能够设置所有三个小部件的颜色?谢谢 - 约瑟夫

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    在每个单独的小部件中创建一个方法,用于设置相应小部件的状态。然后,在主类中创建小部件的对象,添加到 UI 并从那里调用方法。

    class Mainclass extends StatelessWidget{
    widget1 obj = new widget1();
    ..
    ..
    
    Widget build(BuildContext context){
    
    return obj;
    
    }
    
    
    void setstate(){
    obj.set();
    }
    
    

    然后,widget1 的代码应该有点像:

    class widget1 extends StatefulWidget{
    
    widget1State st = new widget1State();
    
    void set(){
      st.setSt();
    }
    State<StatefulWidget> createState() => st;
    
    }
    
    class widget1State extends State<widget1>{
    
    void setSt(){
    setState((){
    
    });
    }
    ..
    ..
    }
    
    
            
            
    

    【讨论】:

    • 这是我能做的最好的了......请告诉我是否有更好的方法。
    猜你喜欢
    • 2021-05-19
    • 2019-09-23
    • 2018-09-01
    • 2021-09-21
    • 1970-01-01
    • 2019-06-10
    • 2020-03-18
    • 2019-10-06
    • 2021-08-27
    相关资源
    最近更新 更多