如何在 flutter 中将上下文传递给子部件

Ase*_*eem 5 flutter

我有一个有状态小部件W1,它调用无状态小部件W2

W2onTap功能。我想在 中显示一个警报对话框W2's onTap()

onTap:() {Alert(context: context, title:'Hi');},
Run Code Online (Sandbox Code Playgroud)

我没有收到任何错误,但点击时不会显示任何警报。我尝试将上下文作为参数传递给,W2但我仍然没有看到任何对话框。显示对话框的正确方法是什么W2?我正在使用 rflutter_alert 包链接

谢谢

Bla*_*nka 1

你必须Alert(context: context, title:'Hi');showDialog(context: context, builder: (BuildContext context) => Alert(context: context, title:'Hi'));

\n\n

这是食谱样本:

\n\n
Future<void> _neverSatisfied() async {\n  return showDialog<void>(\n    context: context,\n    barrierDismissible: false, // user must tap button!\n    builder: (BuildContext context) {\n      return AlertDialog(\n        title: Text('Rewind and remember'),\n        content: SingleChildScrollView(\n          child: ListBody(\n            children: <Widget>[\n              Text('You will never be satisfied.'),\n              Text('You\\\xe2\x80\x99re like me. I\xe2\x80\x99m never satisfied.'),\n            ],\n          ),\n        ),\n        actions: <Widget>[\n          FlatButton(\n            child: Text('Regret'),\n            onPressed: () {\n              Navigator.of(context).pop();\n            },\n          ),\n        ],\n      );\n    },\n  );\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

无论如何,对于您关于如何传递 的问题context,如果您正在创建一个StatelessStateful小部件,则不需要传递context,您可以从 获取它build(BuildContext context) {}

\n