Я делаю систему фильтрации во флаттере, используя два списка, называемых mailList
и filteredMailList
. При первом заполнении mailList
этот код запускается:
setState(() {
filteredMailList.clear();
filteredMailList = mailList;
});
Когда это сделано, кажется, что любые изменения, которые я делаю на mailList
, реплицируются в FilterMailList, даже если у меня нетЯ снова выполнил эти две строки. Например:
//Assume that mailList = ["1", "2", "3"] and filteredMailList = []
filteredMailList = mailList
//I expect then mailList = ["1", "2", "3"] and filteredMailList = ["1", "2", "3"]
mailList.add("4")
//I expect then mailList = ["1", "2", "3", "4"] and filteredMailList = ["1", "2", "3"]
//However when this is run mailList = ["1", "2", "3", "4"] and filteredMailList = ["1", "2", "3", "4"]
Имеет ли это какое-то отношение к тому факту, что я не могу давать обоим спискам одинаковое содержимое, а вместо этого говорю, что они ссылаются на один и тот же список?
Можно ли сделать так, чтобы filteredMailList
содержал только элементы mailList
и не ссылался на один и тот же список, так что каждый из них можно редактировать независимо?