dart - 将一个 dart 文件中的列表返回到另一个 dart 文件

标签 dart flutter

我正在使用列表来创建墨水瓶按钮。我想将列表放在一个单独的 dart 文件中,并将该文件导入到我使用列表的文件中。我不知道如何导入列表。

https://pastebin.com/mf0kvsGu

我制作了一个 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/

相关文章:

dart - 如何合并/最小化CSS文件?

flutter - 从较低级别的小部件更新较高级别的小部件状态

mobile - 是否可以在 Linux 虚拟机上使用 Flutter 开发 iOS 应用程序?

flutter - 获取外部存储权限(file_provider 插件)

dart - ListView 和其他小部件之间的巨大空间

android - 将图片下载器添加到Flutter应用时出错

flutter - 没有名称为 'resizeToAvoidBottomPadding' 的命名参数

drag-and-drop - drop 事件没有被触发

flutter - 无法在泛型函数中使用泛型函数

flutter - Flutter无法加载 Assets :但目录不存在