Navigator 上的 Flutter Provider 注入多个对象
Flutter Provider on Navigator inject multiple objects
Flutter 新手,我在我的应用程序之上安装了 Provider,其中包含 class 事件。有没有办法在 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注入多个依赖(Classes/Objects/Stores)
正如 https://pub.dev/packages/provider 所描述的那样:
MultiProvider(
providers: [
Provider<Something>(create: (_) => Something()),
Provider<SomethingElse>(create: (_) => SomethingElse()),
Provider<AnotherThing>(create: (_) => AnotherThing()),
],
child: someWidget,
)
将 arguments/props 传递给小部件
尽管您使用了描述和关键字,但通过查看您的代码,我可以猜测您想要将第二个或更多输入/arguments/props 传递给您的屏幕小部件。每个小部件输入都是一个 class 构造函数参数。因此,您只需在 MapBox
class.
的构造函数中声明所需参数
class MapBox extends StatelessWidget {
EventModel firstInput;
OtherEventModel secondInput;
MapBox(this.firstInput, this.secondInput);
.
.
.
}
Flutter 新手,我在我的应用程序之上安装了 Provider,其中包含 class 事件。有没有办法在 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注入多个依赖(Classes/Objects/Stores)
正如 https://pub.dev/packages/provider 所描述的那样:
MultiProvider(
providers: [
Provider<Something>(create: (_) => Something()),
Provider<SomethingElse>(create: (_) => SomethingElse()),
Provider<AnotherThing>(create: (_) => AnotherThing()),
],
child: someWidget,
)
将 arguments/props 传递给小部件
尽管您使用了描述和关键字,但通过查看您的代码,我可以猜测您想要将第二个或更多输入/arguments/props 传递给您的屏幕小部件。每个小部件输入都是一个 class 构造函数参数。因此,您只需在 MapBox
class.
class MapBox extends StatelessWidget {
EventModel firstInput;
OtherEventModel secondInput;
MapBox(this.firstInput, this.secondInput);
.
.
.
}