繁体   English   中英

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

[英]How can I pass arguments from one tab to another?

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

可能的解决方案可以随提供程序包一起提供 如果你不需要它,不要把它放在你的小部件树的顶部,你会避免潜在的无用重建。

可能你想这样做:

class Data {
  String something;
}

然后在小部件树中的某个点,在带有选项卡的页面上方,您使用:

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

Childs 将能够调用Provider.of<Data>(context)来获取数据。 通常最好使用消费者,它可以让您更好地控制重建,从而提高性能。

你将创建一个合适的Data类(不像我的,它只是给出了想法)。


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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM