从 Flutter 中的父目录导入

标签 import flutter

我想在另一个文件夹中的自己的文件中制作几个复杂的小部件,这些小部件将由帮助脚本导入和配置。这是文件树:

- lib/
  - constants.dart
  - file1.dart
  - file2.dart
  - main.dart
  - utils.dart
  - utils/
    - complex_widget1.dart
    - complex_widget2.dart
    - complex_widget3.dart

Here is what is in utils.dart

import "utils/complex_widget1.dart";
import "utils/complex_widget2.dart";
import "utils/complex_widget3.dart";

class Utils {
    final Widget1 widget1;
    final Widget2 widget2;
    final Widget3 widget3;
    final String data_needed_by_widgets;
    Utils (this.data_needed_by_widgets) : 
        widget1 = Widget1(data_needed_by_widgets),
        widget2 = Widget2(data_needed_by_widgets),
        widget3 = Widget3(data_needed_by_widgets);
}

这应该可以正常工作。但是当我想在我的小部件中访问 constants.dart 时,问题就来了(它包含一堆 const 字符串和我在所有文件中使用的其他内容):

utils/complex_widget1.dart:

// Pretend this has actually complicated stuff
import "constants.dart";  // How do I import this?
class Widget1 extends StatelessWidget {
    @override
    Widget build (BuildContext context) => Center (
        child: Text (TITLE_TEXT)  // From constants.dart
    );
}

我不能只从 constants.dart 导入单个变量,它们都是全局的,没有类或函数可以作为参数传递。如何从 Widget1(或任何其他 complex_widget,就此而言)访问 constants.dart 的值?

最佳答案

可以使用相对路径

import '../../constants.dart';

但是您应该使用包路径,以便移动文件不需要编辑导入。

import 'package:YOUR_PACKAGE/constants.dart';

请注意 package 路径中省略了 lib/ 目录。

关于从 Flutter 中的父目录导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54121559/

相关文章:

dart - 在 Flutter 中预加载本 map 片资源

java - 如何在子包中扩展抽象类?

Scala 导入问题 - 错误 : not found: value

android - 在Android设备中运行项目时,为什么会发生 flutter 朔迷离中与Firebase相关的错误?

flutter - 合并列表中的信息

android - 我的应用程序如何阻止用户安装和启动某些应用程序?

google-maps - 如何在 flutter 中的当前位置创建圆圈

magento - 从 CSV 导入 magento 中另一个产品的追加销售产品

python - 如何关闭 VS Code 中未使用的导入的自动删除?

excel - Magento: "Image does not exist"