Я разрабатываю приложение с вращающимся колесом, используя https://pub.dev/packages/flutter_spinning_wheel, и я разрешаю пользователю заполнить содержимое колеса в списке, чтобы оно было пустым в начале приложения.
Но когда я запускаю приложение, я получаю эту ошибку, потому что список пуст. Есть ли способ позволить ему работать без ошибки?
Это список, который я передаю:
class NameViewList extends StatefulWidget {
NameViewList({List<String> names}) : this.names = names ?? [];
final List<String> names;
@override
_NameViewListState createState() => _NameViewListState();
}
, и вот как я принимаю данные от пользователя:
createDialog(BuildContext context){
return showDialog(context: context, builder: (context) {
return AlertDialog(
title: Text('Insert Name'),
content: TextField(
controller: nameController,
decoration: InputDecoration(
border: OutlineInputBorder(),
labelText: 'Contact Name',
),
),
actions: [
MaterialButton(
child: Text('Submit'),
onPressed: (){
addItemToList();
Navigator.of(context).pop();
},
)
],
);
});
}
void addItemToList(){
setState(() {
widget.names.insert(0, nameController.text);
});
}
и вот как я получаю данные на карте для их просмотра:
final Map<int, String> labels =
{
1:NameViewList().names[0],
2:NameViewList().names[1],
3:NameViewList().names[2],
4:NameViewList().names[3],,
};
@override
Widget build(BuildContext context) {
return Text(
'${labels[selected]}',
style: TextStyle(fontStyle: FontStyle.italic)
);
}
и просматриваю их с помощью StreamBuilder:
Expanded(
child: StreamBuilder(
stream: _dividerController.stream,
builder: (context, snapshot) =>
snapshot.hasData ? BasicScore(snapshot.data) : Container(),
),
),