繁体   English   中英

如何在 flutter PopupMenuButton 中调用异步 function?

[英]How to call an asynchronous function inside flutter PopupMenuButton?

import 'dart:io';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

choiceAction(BuildContext context)async{
    SharedPreferences preferences = await SharedPreferences.getInstance();
    preferences.setBool("isLogin", false);
    Navigator.pushNamed(context, '/login');
}

  Widget aapBarSection(String title, Color color, BuildContext context){
    return AppBar(
      title: Text(title, style:TextStyle(fontFamily: 'Poppins-Regular'), ),
      centerTitle: true,
      backgroundColor: color,
      actions: [
        PopupMenuButton<String>(
      
          onSelected: choiceAction,
          offset: Offset.zero,
          itemBuilder: (BuildContext context) {
           return <PopupMenuEntry<String>>[
             PopupMenuItem(
               child: Row(
                 children: [
                   Padding(
                     padding: const EdgeInsets.all(8.0),
                     child: Icon(Icons.logout, color: Colors.black,),
                   ),
                   Text('Logout'),
                 ],
               ),
               value: 'Logout',
             )
           ];

          },
        )
      ],
      leading: IconButton(
        icon: Icon(Icons.arrow_back),
        onPressed: (){
          exit(0);
        },
      ),
    );
  }

想在 onSelected 属性中调用异步 function,我该怎么做? 因为我想在应用程序栏中添加一个注销选项,并通过调用 function 单击注销时,它应该更改共享首选项中的 is_login 状态,并导航到登录屏幕。

任何人请帮忙!

onSelected: (value) async {
  // your code
}

暂无
暂无

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

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