Flutter 如何将参数从一个选项卡传递到另一个选项卡?

Flutter 如何将参数从一个选项卡传递到另一个选项卡?,flutter,dart,Flutter,Dart,我的应用程序有两个选项卡。一个包含章节,第二个选项卡包含课程。第二个选项卡上的课程数量是动态的,取决于它是从哪个章节构建的。我可以使用DefaultTabController.of(context.animateTo)(1) 但是如何将章节索引传递给第二个选项卡,就像Navigator.push中的参数一样?一个可能的解决方案可能会随包而来。如果您不需要它,请不要将其放在小部件树的顶部,这样可以避免潜在的无用重建 可能您想这样做: class Data { String something;

我的应用程序有两个选项卡。一个包含章节,第二个选项卡包含课程。第二个选项卡上的课程数量是动态的,取决于它是从哪个章节构建的。我可以使用DefaultTabController.of(context.animateTo)(1)
但是如何将章节索引传递给第二个选项卡,就像Navigator.push中的参数一样?

一个可能的解决方案可能会随包而来。如果您不需要它,请不要将其放在小部件树的顶部,这样可以避免潜在的无用重建

可能您想这样做:

class Data {
  String something;
}
然后在小部件树的某个点上,在带有选项卡的页面上方,使用:

Provider(
  create: (_) => Data(),
  child: YourWidgetWithTabs()
)
Childs将能够调用
Provider.of(context)
来获取数据。通常最好使用Consumer,这样可以更好地控制重建,从而提高性能

您将装箱一个适当的
数据
类(不像我的,它只是给出了想法)



一般的要点是在树的顶部有一个“数据保持器”,用于读/写数据。如果您还需要侦听对数据源所做的更改,请使用
ChangeNotifierProvider

一个可能的解决方案可能会随软件包一起到达。如果您不需要它,请不要将其放在小部件树的顶部,这样可以避免潜在的无用重建

可能您想这样做:

class Data {
  String something;
}
然后在小部件树的某个点上,在带有选项卡的页面上方,使用:

Provider(
  create: (_) => Data(),
  child: YourWidgetWithTabs()
)
Childs将能够调用
Provider.of(context)
来获取数据。通常最好使用Consumer,这样可以更好地控制重建,从而提高性能

您将装箱一个适当的
数据
类(不像我的,它只是给出了想法)



一般的要点是在树的顶部有一个“数据保持器”,用于读/写数据。如果您还需要侦听对数据源所做的更改,请使用
ChangeNotifierProvider

理想情况下,您可以使用状态管理解决方案,如
ScopedModel
,以便在整个应用程序中共享数据。理想情况下,您可以使用状态管理解决方案,如
ScopedModel
,这使您可以在应用程序中共享数据。