RangeError (index): недопустимое значение во Flutter - PullRequest
0 голосов
/ 26 мая 2020

Я разрабатываю приложение с вращающимся колесом, используя 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(),
              ),
            ),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...