我们如何实现使用onTap或onPressed在PopupMenuItem
这是我的代码:
actions: <Widget>[
PopupMenuButton(
icon: Icon(Icons.settings),
itemBuilder: (context) => [
PopupMenuItem(
child: Text("Settings"),
),
PopupMenuItem(
child: Text("Flutter.io"),
),
PopupMenuItem(
child: Text("Google.com"),
),
],
),
]
Run Code Online (Sandbox Code Playgroud)
我想在点击或单击 Settings PopupMenuItem 时导航到 SettingPage()。
即使在遵循下面提到的解决方案之后,甚至在导入 dart:js 之后,我也会收到此错误
Error: Not found: 'dart:js'
import 'dart:js';
Run Code Online (Sandbox Code Playgroud)
这是我的依赖项:
import 'package:bfdi_app/Profile/editProfile.dart';
import 'package:bfdi_app/models/user.dart';
import 'package:bfdi_app/services/collection.dart';
import 'package:bfdi_app/settings.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'dart:js';
Run Code Online (Sandbox Code Playgroud) 在我的 Flutter 应用程序中,我有一个名为 的文件web.dart,其中有一个webSaveAs函数可以将文件保存到 web 中的本地计算机上。
@JS()\nlibrary main;\n\nimport \'package:js/js.dart\';\nimport \'package:universal_html/html.dart\';\n\n/// Annotate `webSaveAs` to invoke JavaScript `window.webSaveAs`\n@JS(\'webSaveAs\')\nexternal void webSaveAs(Blob blob, String fileName);\nRun Code Online (Sandbox Code Playgroud)\n但是,当我运行任何导入flutter test我使用过webSaveAs功能的小部件的测试(使用命令)时,出现以下错误:
./../../../development/flutter/.pub-cache/hosted/pub.dartlang.org/js-0.6.3-nullsafety.3/lib/js.dart:8:1: Error: Not found: \'dart:js\'\nexport \'dart:js\' show allowInterop, allowInteropCaptureThis;\n^\nRun Code Online (Sandbox Code Playgroud)\n我正在使用js: ^0.6.2https://pub.dev/packages/js ,这是命令的结果flutter doctor。
\xe2\x95\xb0>>> flutter doctor\nDoctor summary (to see all details, run flutter doctor -v):\n[\xe2\x9c\x93] Flutter (Channel beta, 1.25.0-8.3.pre, on macOS 11.2.1 20D74 darwin-x64, locale en-SG)\n[\xe2\x9c\x93] Android toolchain - …Run Code Online (Sandbox Code Playgroud)