我的应用程序有两个标签。一个包含章节,第二个选项卡包含课程。第二个选项卡上的课程数量是动态的,并且取决于它从哪一章构建。我可以使用 DefaultTabController.of(context).animateTo(1)从第一个选项卡移至第二个选项卡 但是如何将章节索引像Navigator.push中的参数一样传递到第二个选项卡?
答案 0 :(得分:1)
provider软件包可能提供一种可能的解决方案。如果不需要,请不要将其放在小部件树的顶部,这样可以避免潜在的无用重建。
可能您想这样做:
class Data {
String something;
}
然后在小部件树中的某个时刻,在带有标签的页面上方,使用:
Provider(
create: (_) => Data(),
child: YourWidgetWithTabs()
)
孩子们将能够致电Provider.of<Data>(context)
来获取数据。通常最好使用Consumer,它可以让您更好地控制重建,从而提高性能。
您将创建一个适当的Data
类(与我的类不同,它只是给出了主意)。
通常的要点是在用于读取/写入数据的树的顶部有一个“数据持有人”。如果您还需要收听对数据源所做的更改,请使用ChangeNotifierProvider
。