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