#dart #flutter
#dart #flutter
Вопрос:
Я использую списки для создания кнопок чернильницы. Я хочу поместить списки в отдельный файл 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 == ""amp;amp; _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(); .
Комментарии:
1. Не могли бы вы предоставить больше информации? Я вижу, вы просто создаете новый
ButtonLists
экземпляр, не используя его внутри метода сборки. Было бы полезно, если бы вы добавили как рабочий, так и нерабочий код.2.вот рабочий код для страницы входа в систему pastebin.com/A9MwM887 игнорируйте импорт, который я хочу разделить на список и импортировать список на эту «нерабочую страницу входа». pastebin.com/TsPx54eQ pastebin.com/mf0kvsGu
3. я использую списки дважды, поэтому я хочу иметь возможность импортировать списки в оба файла dart, где используются списки
Ответ №1:
Это потому import
, что вы импортируете только класс, записанный в файле, на который вы ссылаетесь. Точнее, возможность создавать экземпляры класса в импортированном Dart
файле
Чтобы решить вашу проблему
1- Инициализируйте свои списки глобально внутри ButtonsLists
класса. (перед Build()
методом). Я бы предпочел объявить их final
2. Заполните свои списки данными, как вам нравится в Build()
методе
3. Создайте геттеры, чтобы получить копию ваших заполненных списков
4. Создайте экземпляр ButtonsLists
класса внутри _LoginPageState
класса и вызывайте средство получения любого списка всякий раз, когда вам нужно
Реализация должна быть примерно такой:
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();
Комментарии:
1. есть ли какие-либо средства получения списка flutter, которые я могу прочитать? пока это код pastebin.com/ruGrL1yy все, что мне нужно нажать, это список кнопок
2. @Robot2425 Я обновил свой ответ, если он показался вам полезным, пожалуйста, отметьте его как правильный ответ!