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

时间:2019-12-29 18:37:05

标签: flutter dart

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

1 个答案:

答案 0 :(得分:1)

provider软件包可能提供一种可能的解决方案。如果不需要,请不要将其放在小部件树的顶部,这样可以避免潜在的无用重建。

可能您想这样做:

class Data {
  String something;
}

然后在小部件树中的某个时刻,在带有标签的页面上方,使用:

Provider(
  create: (_) => Data(),
  child: YourWidgetWithTabs()
)

孩子们将能够致电Provider.of<Data>(context)来获取数据。通常最好使用Consumer,它可以让您更好地控制重建,从而提高性能。

您将创建一个适当的Data类(与我的类不同,它只是给出了主意)。


通常的要点是在用于读取/写入数据的树的顶部有一个“数据持有人”。如果您还需要收听对数据源所做的更改,请使用ChangeNotifierProvider