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

问题描述 投票:1回答:1

我正在使用列表来创建墨水池按钮。我想将列表放在一个单独的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();在。

dart flutter
1个回答
1
投票

那是因为import只会导入你所指的文件中写的类。更确切地说,是在导入的Dart文件中创建类实例的能力

解决你的问题

1-在ButtonsLists类中全局初始化列表。 (在Build()方法之前)。我宁愿宣布他们final

2-在Build()方法中根据需要使用数据填充列表

3-创建getter以获取已填充列表的副本

4-在ButtonsLists类中创建_LoginPageState类的实例,并在需要时调用任何列表的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();

© www.soinside.com 2019 - 2024. All rights reserved.