Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 找不到正确的ScopedModel_Android_Dart_Flutter - Fatal编程技术网

Android 找不到正确的ScopedModel

Android 找不到正确的ScopedModel,android,dart,flutter,Android,Dart,Flutter,我正在我的颤振应用程序中使用ScopedModel和scopedmodelscedent。MaterialApp是ScopedModelSecondent小部件中的包装器,如下面的代码所示 void main() => runApp(new ScopeModelWrapper()); class ScopeModelWrapper extends StatelessWidget { @override Widget build(BuildContext context) {

我正在我的颤振应用程序中使用
ScopedModel
scopedmodelscedent
。MaterialApp是ScopedModelSecondent小部件中的包装器,如下面的代码所示

void main() => runApp(new ScopeModelWrapper());

class ScopeModelWrapper extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ScopedModel<AppModel>(model: AppModel(), child: MyApp());
  }
}

class AppModel extends Model {
  // Some code specific to model, actually a lot of code.
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ScopedModelDescendant<AppModel>(builder: (context, child, model) {
      return MaterialApp(
        title: 'Flutter Firebase',
        localizationsDelegates: [
          AppLocalizationsDelegate(),
          GlobalMaterialLocalizations.delegate,
          GlobalWidgetsLocalizations.delegate,
        ],
        supportedLocales: [
          Locale("nb", ""),
          Locale("en", ""),
        ],
        locale: model.appLocal,
        navigatorObservers: <NavigatorObserver>[routeObserver],
        theme: new ThemeData(
          primarySwatch: Colors.blue,
          primaryColor: Colors.blueAccent,
        ),
        home: SelectDenominationPage(),
      );
    });
  }
}
void main()=>runApp(新的ScopeModelWrapper());
类ScopeModelWrapper扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回ScopedModel(model:AppModel(),child:MyApp());
}
}
类AppModel扩展了模型{
//一些特定于模型的代码,实际上是很多代码。
}
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回scopedModelSecondant(生成器:(上下文、子对象、模型){
返回材料PP(
标题:“扑动火场”,
本地化授权:[
AppLocalizationsDelegate(),
GlobalMaterialAllocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
支持的区域设置:[
区域设置(“nb”和“),
区域设置(“en”和“),
],
区域设置:model.appLocal,
NavigatorObserver:[routeObserver],
主题:新主题数据(
主样本:颜色。蓝色,
primaryColor:Colors.blueAccent,
),
主页:选择命名页(),
);
});
}
}
当我导航到
主页
->
设置
(从
选择面额页面
)时,会出现此问题。
Settings
页面(或小部件)包含一些包装在
scopedmodelscedent
小部件中的小部件,这就是导致错误的原因

我不明白为什么它找不到ScopedModel,因为它就在树的根上

非常感谢您的帮助


更新:我将
AppModel
类移动到它自己的文件中,然后我将所有导入内容从
'AppModel.dart'
更改为
'package:/AppModel.dart'
,它开始工作。我仍然不完全理解这一点。如果我们引用的是同一个文件,那么为什么会在不同的模型中处理它?

您能为产生反错误的
SelectDenominationPage()
发布一个最小的片段吗?当我通过
主页
通过
SelectDenominationPage
导航到设置页面时,会出现错误。
Settings
页面包含一个
scopedmodelscedent
。您的
AppModel
类是否在
main.dart
中声明?如果是这样,请将其移动到另一个文件中。我这样做了,并修改了导入以使用
包:
符号,结果成功了。