首页 > 解决方案 > 为什么这个 Flutter Web 应用每次运行时都会打开一个 dart 文件?

问题描述

当我将main()inmain.dart更改为package的async功能时,这一切都发生了。sqflite

当我运行应用程序时,Chrome 会打开以进行调试,但会显示一个全白的空白屏幕,并且在 Visual Studio 代码中,名为web_entrypoint.dartopens 的文件会显示此行:

在此处输入图像描述

这是 main.dart 中的 main():

//These are the imports you should consider
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:path/path.dart';
import 'package:sqflite/sqflite.dart';

void main() async {
  final GlobalKey<NavigatorState> navigatorKey =
        new GlobalKey<NavigatorState>();
// This part was added later      
  final database = openDatabase(
    join(await getDatabasesPath(), 'mDb.db'),
    onCreate: (db, version) {
      return db.execute(
        "CREATE TABLE  musteri(ad TEXT, telefon INTEGER, sigorta TEXT, dosya TEXT, eksper TEXT, hasar TEXT,  adres TEXT , ilkGelis DATETIME, km INTEGER, marka TEXT, model TEXT, motor TEXT, plaka TEXT, renk TEXT, sase TEXT, tc PRIMARY KEY INTEGER, sonGelis DATETIME, tahTeslim DATETIME )",
      );
    },
    version: 1,
  );

  runApp(MaterialApp(
    title: 'Title',
    
    initialRoute: '/',
    routes: {
     
      '/': (context) => SignIn(),
      
      '/home': (context) => Menu(),
      '/verify': (context) => EmailVerification(),
      '/yenikayit': (context) => Kayit("New Record"),
    },
    navigatorKey: navigatorKey,
  ));
}

pubspec.yaml 没有错。我认为这与平台规范有关,但无法弄清楚原因。我也没有收到错误消息。runApp在此之前,我只有NavigatorKey在我的main()功能中,并且它运行良好。

标签: flutterdartflutter-websqflite

解决方案


sqflite不支持网络。不仅包装中缺少标签,它甚至直接这样说:

其他平台支持:

  • [...]
  • 不支持网络。

因此,无论导致您的确切问题是什么,您都无法以这种方式使用数据库。很有可能,你看到的就是这个结果。


推荐阅读