我正在使用列表来创建墨水瓶按钮。我想将列表放在一个单独的 dart 文件中,并将该文件导入到我使用列表的文件中。我不知道如何导入列表。
我制作了一个 dart 文件来放入列表。
https://prnt.sc/ndu736 “列表错误”
void _loginPressed() {
// these handlers are called whenever the user tries to login, resend password or create an account
print('The use wants to login with $_email and $_password');
//if (_email == ""&& _password == "") {
ButtonsLists();
Navigator.push(
context,
MaterialPageRoute(
builder: (BuildContext context) => BrowsePage(buttonList)));
//}
}
class BuyItem extends StatelessWidget {
BuyItem(this.name, this.image);
final String name;
final String image;
@override
Widget build(BuildContext context) {
ButtonsLists();
return InkWell(
child: Card(
child: GridTile(
......
http://prntscr.com/ndu7rc “导入错误”
如果我没有将列表放在单独的文件中,而是将它们放在 ButtonsLists();是在。
最佳答案
那是因为 import
只会导入您所引用的文件中编写的类。更准确地说,能够在导入的 Dart
文件中创建类的实例
解决您的问题
1- 在 ButtonsLists
类中全局初始化您的列表。 (在 Build()
方法之前)。我宁愿将它们声明为 final
2- 在 Build()
方法中用您喜欢的数据填充您的列表
3- 创建 getter 以获取已填充列表的副本
4- 在 _LoginPageState
类中创建 ButtonsLists
类的实例,并在需要时调用任何列表的 getter
实现应该是这样的:
class ButtonsLists extends StatelessWidget {
final List<MainButtons> _buttonList = new List();
@override
Widget build(BuildContext context) {
//Build your lists here
}
List<MainButtons> getMainButtonsList(){
return _buttonList;
}
然后在 _LoginPageState
类中创建类 ButtonsLists
的实例,如下所示:
ButtonsLists mLists = new ButtonsLists();
然后像这样在类里面的任何地方调用你的列表:
mLists.getMainButtonsList();
关于dart - 将一个 dart 文件中的列表返回到另一个 dart 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55752264/