谁知道在调用像这样的页面"Pagetwo(data:data)“时,我如何从另一个类访问变量而不必直接传递它们因为不需要打开页面我只需要变量,我试着简单地导入我想要的类并像这样访问它”var newdata = otherclass.data“,但我一直收到错误消息”实例成员‘数据’无法使用静态访问“,不确定下一步该做什么,我已经研究了一段时间了
发布于 2020-09-27 18:20:07
有两种方法可以做到这一点
全局管理(这不是recommend)
有许多状态管理技术:
InheritedWidget
Scoped Model
ProviderScope
Redux
BLOC
RxVMS
MVC
rebloc
Dartea
MobX
Statelessly/Reactivity
var_widget
fish-redux
Flutter Hooks
Provider
AsyncRedux
OSAM
Get
Momentum
state_notifier (by creator of provider)
cubit (by creator of bloc)
maestro
meowchannel
no_bloc
blocstar
mvcprovider
states_rebuilder
最流行的状态管理技术是provider、bloc、redux、getX、InheritedWidget。如果你需要一个例子,那么请让我知道。
发布于 2020-09-27 18:33:09
您必须在每个变量都在的provider
中创建viewModel。
class BaseModel extends ChangeNotifier {
int variable = 0;
notifyChange() {
notifyListeners();
}
@override
void dispose() {
super.dispose();
}
}
假设你有两个类,你想访问同一个变量,这个变量在ViewModel中,所以你可以使用provider singleton
。
这是一页上的头等舱。
class BookDetail extends StatelessWidget {
@override
Widget build(BuildContext context) {
final BookModel bookModel = Provider.of(context);
print(bookModel.variable);
}
}
这是第二个类,是另一个页面。
class BookDetailPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
final BookModel bookModel = Provider.of(context);
print(bookModel.variable);
}
}
https://stackoverflow.com/questions/64091767
复制