首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >颤振中的多重ScopedModels

颤振中的多重ScopedModels
EN

Stack Overflow用户
提问于 2019-10-16 19:50:08
回答 1查看 106关注 0票数 0

我学习了一个使用scope_model登录系统的颤振应用程序的教程。然后,我添加了一个名为Group的新scope_model,用于一种称为机遇的新“路线”中。

但是在我的新路径中,我不能调用scope_model组,我总是看到同样的错误:

错误:找不到正确的ScopedModel。

我认为我的错误是在main.dart。我不知道如何“开发票”我的新scope_model。

这是我的密码。

文件opportuinity.dart

代码语言:javascript
复制
import 'package:scoped_model/scoped_model.dart';
import 'package:business_maker/data/models/group_api.dart';

(...)

代码语言:javascript
复制
  @override
  Widget build(BuildContext context) {
    final _group = ScopedModel.of<GroupModel>(context, rebuildOnChange: true);

文件main.dart

代码语言:javascript
复制
 @override
  Widget build(BuildContext context) {
    return ScopedModel<ThemeModel>(
        model: _model,
        child: new ScopedModelDescendant<ThemeModel>(
          builder: (context, child, theme) => ScopedModel<AuthModel>(
            model: _auth,
            child: MaterialApp(
              theme: theme.theme,
              home: new ScopedModelDescendant<AuthModel>(
                  builder: (context, child, model) {
                    if (model?.user != null) return Home();
                    return LoginPage();
                  }),
              routes: <String, WidgetBuilder>{
                "/login": (BuildContext context) => LoginPage(),
                "/menu": (BuildContext context) => Home(),
                "/home": (BuildContext context) => Home(),
                "/settings": (BuildContext context) => SettingsPage(),
                "/opportunities": (BuildContext context) => OpportunityPage()
              },
            ),
          ),
        ));
  }

谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-10-16 19:53:27

如果您想在不同的路线上使用模型,那么您需要将模型放在Navigator之上,这通常是在WidgetsApp/MaterialApp/库比蒂诺应用程序中创建的。

在您的代码中,我没有看到位于导航器上方的ScopedModel<Group>。实际上是在任何地方。您需要将组模型添加到导航器之上( materialapp为您创建的东西)。

代码语言:javascript
复制
  Widget build(BuildContext context) {
return ScopedModel<ThemeModel>(
    model: _model,
    child: ScopedModel<Group>(
        model: _yourGroupModel,
        child: new ScopedModelDescendant<ThemeModel>(
          builder: (context, child, theme) => ScopedModel<AuthModel>(
            model: _auth,
            child: MaterialApp(
              theme: theme.theme,
              home: new ScopedModelDescendant<AuthModel>(
                  builder: (context, child, model) {
                    if (model?.user != null) return Home();
                    return LoginPage();
                  }),
              routes: <String, WidgetBuilder>{
                "/login": (BuildContext context) => LoginPage(),
                "/menu": (BuildContext context) => Home(),
                "/home": (BuildContext context) => Home(),
                "/settings": (BuildContext context) => SettingsPage(),
                "/opportunities": (BuildContext context) => OpportunityPage()
              },
            ),
          ),
        )
    )
);

}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58420739

复制
相关文章

相似问题

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