Android SwiftUI ObservieObject+@出版的《颤振》杂志
我在SwiftUI中开发了一个iOS应用程序,现在需要将其移植到Android上,并决定尝试使用Flitter。在克服了超级冗长和/或丑陋的嵌套小部件之后,我陷入了状态管理。在SwiftUI中:Android SwiftUI ObservieObject+@出版的《颤振》杂志,android,flutter,state,swiftui,Android,Flutter,State,Swiftui,我在SwiftUI中开发了一个iOS应用程序,现在需要将其移植到Android上,并决定尝试使用Flitter。在克服了超级冗长和/或丑陋的嵌套小部件之后,我陷入了状态管理。在SwiftUI中: class MySharedObj : ObservableObject { @Published var someVar = 0 } 现在我可以简单地在任何视图中删除“@ObservedObject var obj:MySharedObj”,并且每当someVar在任何地方发生更改时,所有“观察
class MySharedObj : ObservableObject {
@Published var someVar = 0
}
现在我可以简单地在任何视图中删除“@ObservedObject var obj:MySharedObj”,并且每当someVar在任何地方发生更改时,所有“观察”该对象的视图都会自动更新。在颤振中是否有类似的东西?目前,我手动管理“侦听器”列表,如下所示:
class ObservableObject {
List<State> _listeners = [];
ObservableObject subscribe(State state) { _listeners.add(state); return(this); }
ObservableObject unsubscribe(State state) { _listeners.remove(state); return(this); }
ObservableObject notify() { _listeners.forEach((l) => l.setState((){})); return(this); }
}
class MySharedObj : ObservableObject {
int _someVar = 0;
int get someVar => _someVar;
void set someVar(int v) { _someVar = v; notify(); }
}
class SomeView1State extends State<SomeView1> {
@override initState(){widget.obj.subscribe(this);super.initState();}
@override dispose(){widget.obj.unsubscribe(this);super.dispose();}
}
...
类observeObject{
列表_侦听器=[];
observeObject subscribe(State-State){u侦听器。添加(State);返回(this);}
ObserveObject取消订阅(状态状态){u侦听器。删除(状态);返回(此);}
observeObject notify(){u listeners.forEach((l)=>l.setState((){}));返回(this);}
}
类MySharedObj:observeObject{
int _someVar=0;
int get someVar=>\u someVar;
void set someVar(int v){u someVar=v;notify();}
}
类SomeView1State扩展状态{
@重写initState(){widget.obj.subscribe(this);super.initState();}
@override dispose(){widget.obj.unsubscribe(this);super.dispose();}
}
...
这类工作,但它的丑陋和再次冗长(这似乎是安卓的主题) 我想您应该看看提供商软件包。关于这件事有很多讨论