首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在flutter应用程序中调用页面时,不必直接传递来自另一个类的变量

在flutter应用程序中调用页面时,不必直接传递来自另一个类的变量
EN

Stack Overflow用户
提问于 2020-09-28 02:13:20
回答 2查看 194关注 0票数 0

谁知道在调用像这样的页面"Pagetwo(data:data)“时,我如何从另一个类访问变量而不必直接传递它们因为不需要打开页面我只需要变量,我试着简单地导入我想要的类并像这样访问它”var newdata = otherclass.data“,但我一直收到错误消息”实例成员‘数据’无法使用静态访问“,不确定下一步该做什么,我已经研究了一段时间了

EN

回答 2

Stack Overflow用户

发布于 2020-09-28 02:20:07

有两种方法可以做到这一点

全局管理(这不是recommend)

  • state
  1. 技术(推荐)

有许多状态管理技术:

代码语言:javascript
代码运行次数:0
运行
复制
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。如果你需要一个例子,那么请让我知道。

票数 1
EN

Stack Overflow用户

发布于 2020-09-28 02:33:09

您必须在每个变量都在的provider中创建viewModel。

代码语言:javascript
代码运行次数:0
运行
复制
class BaseModel extends ChangeNotifier {
  int variable = 0;
  notifyChange() {
    notifyListeners();
  }

  @override
  void dispose() {
    super.dispose();
  }
}

假设你有两个类,你想访问同一个变量,这个变量在ViewModel中,所以你可以使用provider singleton

这是一页上的头等舱。

代码语言:javascript
代码运行次数:0
运行
复制
class BookDetail extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final BookModel bookModel = Provider.of(context);
    print(bookModel.variable);
   }
}

这是第二个类,是另一个页面。

代码语言:javascript
代码运行次数:0
运行
复制
class BookDetailPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final BookModel bookModel = Provider.of(context);
    print(bookModel.variable);
   }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64091767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档