我学习了一个使用scope_model登录系统的颤振应用程序的教程。然后,我添加了一个名为Group的新scope_model,用于一种称为机遇的新“路线”中。
但是在我的新路径中,我不能调用scope_model组,我总是看到同样的错误:
错误:找不到正确的ScopedModel。
我认为我的错误是在main.dart。我不知道如何“开发票”我的新scope_model。
这是我的密码。
文件opportuinity.dart
import 'package:scoped_model/scoped_model.dart';
import 'package:business_maker/data/models/group_api.dart';(...)
@override
Widget build(BuildContext context) {
final _group = ScopedModel.of<GroupModel>(context, rebuildOnChange: true);文件main.dart
@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()
},
),
),
));
}谢谢
发布于 2019-10-16 19:53:27
如果您想在不同的路线上使用模型,那么您需要将模型放在Navigator之上,这通常是在WidgetsApp/MaterialApp/库比蒂诺应用程序中创建的。
在您的代码中,我没有看到位于导航器上方的ScopedModel<Group>。实际上是在任何地方。您需要将组模型添加到导航器之上( materialapp为您创建的东西)。
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()
},
),
),
)
)
);}
https://stackoverflow.com/questions/58420739
复制相似问题