错误:未找到:'dart:js' import 'dart:js';

Him*_*rma 5 android dart flutter

我正在 AppBar 部分创建一个 PopupMenuButton()。
这是我的文件:

import 'dart:js';
import 'package:bfdi_app/settings.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';

class ProfilePage extends StatefulWidget {

  @override
  _ProfilePageState createState() => _ProfilePageState();
}

class _ProfilePageState extends State<ProfilePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(
          'App_Name',
          ),
        actions: <Widget>[
            PopupMenuButton(
              icon: Icon(Icons.settings),
              onSelected:(value){
                if(value==0){
                  Navigator.push(
                    context,
                    MaterialPageRoute(builder: (context)=>SettingPage())
                  );
                }
              },
              itemBuilder: (context) => [
                    PopupMenuItem(
                      child: Text("Settings"),
                      value:0,
               ],
            ),
          ],
       ),
      }
Run Code Online (Sandbox Code Playgroud)

现在我在控制台日志中遇到错误:

Compiler message:
lib/Pages/addPost.dart:1:8: Error: Not found: 'dart:js'
import 'dart:js';
       ^
lib/Profile/profile.dart:1:8: Error: Not found: 'dart:js'
import 'dart:js';
       ^
Run Code Online (Sandbox Code Playgroud)

我已经添加了依赖项 dart:js,但仍然出现相同的错误。错误: 在此处输入图片说明

Aqe*_*eel 17

进入你的flutter安装目录/.pub-cache/hosted/pub.dartlang.org/js-0.6.3-nullsafety.1/lib/js.dart

删除或注释此行:

export 'dart:js' show allowInterop, allowInteropCaptureThis;
Run Code Online (Sandbox Code Playgroud)

然后再试一次

  • 顺便说一句,这将破坏网络发布版本。 (3认同)

cre*_*007 7

当您尝试编译本机应用程序时,听起来像是一个导入问题。

尝试搜索并删除不正确的 dart:js 导入 ( import 'dart:js';)。

看看这个GitHub 问题 #70373


小智 5

我只是 del import 'package:js'。这个对我有用。


Rav*_*mar 3

编辑:我已切换到主通道并且一切正常。尽管我在您当前的代码中没有看到任何要求dart.js。所以你也可以删除它


原始答案:我相信您正在使用,stable channel因此请尝试切换到beta channel. 打开终端并运行,

$ flutter channel beta
Run Code Online (Sandbox Code Playgroud)