我有一个页面,一个小部件和一个提供者。
页面中有一些元素,但有一个小部件我需要用于其他页面,所以这就是为什么它被分成另一个小部件。这个小部件只是一个对话框,所以它是一个没有任何状态的类:
class Difficulty {
showModal() {
var settingsController = context.watch<SettingsController>(); // this is what I'd need
return showPlatformDialog(
...
因此,在我的页面中,我调用Difficulty().showPlatformDialog()
,但我需要上一页的上下文或创建一个新的上下文。
最好的办法是什么?
1.传给Difficulty()
1.传给showModal()
1.创建一个StatefulBuilder
或其他具有自己上下文的内容
方法与https://github.com/filiph/tictactoe相同
2条答案
按热度按时间hts6caw31#
您只需要将
BuildContext
作为参数传递给showPlatformDialog()
。示例:
并从小部件调用函数
要回答您的查询,您可以以任何方式传递
context
,例如将其传递给函数或创建无状态/有状态小部件。我更喜欢第三种方法
6jjcrrmo2#
或者你可以使用全局级别的导航键,你可以在项目的任何地方使用上下文,而不必传递上下文。
你可以在这里查看我的答案,我解释了如何使用它。
https://stackoverflow.com/a/71922909/10936691