簡體   English   中英

Flutter 如何在 PopupMenuButton 小部件中獲取上下文?

[英]Flutter how i can get context in PopupMenuButton widget?

我有一個 PopupMenuButton。 但是如果我想調用一個會跳轉到另一個頁面的方法

Navigator.push(context,MaterialPageRoute(builder: (context) => SingleOrder()),);

我有一個錯誤。 未定義的名稱context 如何在Navigator.push中獲取上下文?

Widget _childPopup() => PopupMenuButton<int>(

 onSelected: (result) {
  if (result == 0) {
  Navigator.push(
    context,
    MaterialPageRoute(builder: (context) => SingleOrder()),
   );
 }
},

itemBuilder: (context) => [
  PopupMenuItem(
   value: 0,
    child: Text(
    "MENU 1",
    style: TextStyle(
        color: Colors.black54),
  ),
),
PopupMenuItem(
  value: 1,
  child: Text(
    "MENU 2",
    style: TextStyle(
        color:  Colors.black54),
    ),
  ),
],
);

您需要將BuildContext傳遞給您的_childPopup function。 您可能在BuildContext不直接可用的地方定義了這個 function。 前任。

Widget _childPopup(BuildContext context) => PopupMenuButton<int>(

 onSelected: (result) {
  if (result == 0) {
  Navigator.push(
    context,
    MaterialPageRoute(builder: (context) => SingleOrder()),
   );
 }
},

itemBuilder: (context) => [
  PopupMenuItem(
   value: 0,
    child: Text(
    "MENU 1",
    style: TextStyle(
        color: Colors.black54),
  ),
),
PopupMenuItem(
  value: 1,
  child: Text(
    "MENU 2",
    style: TextStyle(
        color:  Colors.black54),
    ),
  ),
],
);

這樣做可確保BuildContext可用於 function 並允許您更好地控制它將使用哪個上下文。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM