I want to make a couple of complicated widgets in their own files in another folder, which will be imported and configured by a helper script. Here is the file tree:
- 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);
}
This should work fine. But the problem comes when I want to access constants.dart in my widgets (It holds a bunch of const Strings and other stuff that I use across all my files):
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
);
}
I can't just import the individual variables from constants.dart, they're all global and there are no classes or functions to pass as arguments. How do I access values from constants.dart from Widget1 (or any other complex_widget, for that matter)?
import '../constants.dart';- Richard Heap