gpt4 book ai didi

从 Flutter 中的父目录导入

转载 作者:IT王子 更新时间:2023-10-29 06:37:03 31 4
gpt4 key购买 nike

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

- 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/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com