У меня есть два экрана, на которых я передаю список от одного к другому.Тип списка - это пользовательский объект, в котором есть еще один список.На втором экране случайный элемент удаляется из подсписка до тех пор, пока его больше не будет, и в этот момент элемент, содержащий пустой список, также удаляется.Это происходит до тех пор, пока в списке верхнего уровня больше не будет элементов.Проблема в том, что, когда список изменен, элемент остается в прошлом.Вход на второй экран передаст пустой список.
Вот как я делаю копию списка, которая передается вперед:
_pushWordLists(List<WordList>.from(_selections.values));
_pushWordLists(List<WordList> wordLists) {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => CardWidget(wordLists)
)
);
}
И вот как я изменяюсписок:
_loadNewWord() {
if (wordLists.length > 0) {
wordLists.shuffle();
final wordList = wordLists.first;
if (wordList.words.length > 0) {
wordList.words.shuffle();
var words = List<String>.from(wordList.words);
final word = words.first;
words.remove(word);
wordList.words = words;
setState(() {
_multiplier = wordList.multiplier;
_word = word;
});
} else {
wordLists.remove(wordList);
_loadNewWord();
}
} else {
_done();
}
}
Мне сказали, что создание копии позволит мне изменить ее длину, а также сохранить исходный список без изменений.Как мне этого добиться?