Я использую пакет shared_preferences , чтобы сохранить мой объект. Когда я загружаю свое приложение, я получаю предыдущие команды, которые я создал. Если я ничего не получаю (в первый раз), я создаю 2 команды по умолчанию. Вот что у меня есть:
Future<Null> _getTeams() async {
final prefs = await SharedPreferences.getInstance();
return prefs.get("teams") ??
[
{"name": "Team 2", "avatar": "assets/images/draw1.jpg"},
{"name": "Team 3", "avatar": "assets/images/draw2.jpg"},
];
}
class MyState extends State<TeamsPage> {
final _listKey = GlobalKey<AnimatedListState>();
Future<List<Map>> _teams = _getTeams();
Проблема возникает, когда мой виджет должен динамически отображать эти команды. Они еще не готовы, будучи переменной Future
, поэтому я получаю ошибку с длиной и индексом:
child: AnimatedList(
key: _listKey,
initialItemCount: _teams.length,
itemBuilder:
(BuildContext context, int index, Animation animation) {
return _buildItem(_teams[index], index, animation);
},
),
с index
Я получаю эту ошибку:
Оператор«[]» не определено для класса «Будущее>». Попробуйте определить оператор '[]'
и с помощью length
:
Длина getter не определена для класса 'Future>'