Flutter的新手,我的应用程序顶部有Event类的Provider。是否可以在Navigator构建器中注入多个对象,例如MapBox(events.itmaps,events.maps)?
class Events {
final String site, fb, itmaps, maps;
Events({this.site, this.fb, this.itmaps, this.maps});
}
void main() {
final events = Events();
runApp(
Provider<Events>.value(
value: events,
child: MyApp(),
),
);
}
onPressed: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => MapBox(events.itmaps),
),
);
}
据我了解,您有一些概念上的误解!。我将描述两种情况,希望其中一种可以满足您的要求。
使用MultiProvider注入许多依赖关系(类/对象/存储)正如https://pub.dev/packages/provider所描述的那样:
MultiProvider(
providers: [
Provider<Something>(create: (_) => Something()),
Provider<SomethingElse>(create: (_) => SomethingElse()),
Provider<AnotherThing>(create: (_) => AnotherThing()),
],
child: someWidget,
)
将参数/属性传递到小部件
尽管使用了描述和关键字,但通过查看代码,我可以猜测您想将第二个或多个输入/参数/属性传递给屏幕小部件。每个小部件输入都是一个类构造函数参数。因此,您只需要在MapBox
类的构造函数中声明所需的参数即可。
class MapBox extends StatelessWidget {
EventModel firstInput;
OtherEventModel secondInput;
MapBox(this.firstInput, this.secondInput);
.
.
.
}