簡體   English   中英

如何將 class 作為參數傳遞給 flutter?

[英]How do I pass the class as a parameter in flutter?

我正在 flutter 上開發一個 Android 應用程序,我想在其中傳遞 class 作為參數。 我是一個顯示所有食物食譜的頁面,數據來自數據庫。 單擊任何菜譜時,將出現新屏幕,用戶將看到該菜譜的詳細信息現在需要的是,當普通用戶單擊菜譜時,用戶將移至不存在編輯/刪除選項的普通屏幕以及管理員單擊屏幕,然后他將移動到存在編輯/刪除選項的屏幕

class RecipeCard extends StatelessWidget {
  final String title;
  final String rating;
  final String cookTime;
  final String thumbnailUrl;

  const RecipeCard({
    super.key,
    required this.title,
    required this.cookTime,
    required this.rating,
    required this.thumbnailUrl,
  });

  @override
  Widget build(BuildContext context) {
    return InkWell(
      onTap: () {
        Navigator.push(
          context,
          PageRouteBuilder(
            transitionDuration: const Duration(seconds: 1),
            transitionsBuilder: (context, animation, animationTime, child) {
              animation = CurvedAnimation(
                  parent: animation, curve: Curves.fastLinearToSlowEaseIn);
              return ScaleTransition(
                scale: animation,
                alignment: Alignment.center,
                child: child,
              );
            },
            pageBuilder: (context, animation, animationTime) {
              return UpdateOrDeleteRecipe(
                title: title,
                cookTime: cookTime,
                rating: rating,
                thumbnailUrl: thumbnailUrl,
              );
            },
          ),
        );
      },
      child: Container(...),
    );
  }
}

現在在上面的代碼中,return InkWell( onTap: () {我想傳遞 class 名稱,以便在單擊卡片時它會移動到 class 我希望它移動。

我怎樣才能做到這一點? 請記住,當我移至下一頁時,以下參數也將移至下一頁。

return UpdateOrDeleteRecipe(
  title: title,
  cookTime: cookTime,
  rating: rating,
  thumbnailUrl: thumbnailUrl,
);

如果您有兩個單獨的 Admin 和 User 屏幕,您可以設置一個條件,例如isAdmin? UpdateOrDeleteRecipe(...): Detail() isAdmin? UpdateOrDeleteRecipe(...): Detail() in pageBuilder ,或者您可以為管理員和用戶制作一個屏幕,並將bool isAdmin參數放在屏幕 arguments 上,當管理員進入該屏幕時,isAdmin 將為真,因此,您可以顯示編輯/刪除選項,如果 isAdmin 為假,則不顯示它們。

暫無
暫無

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

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