Flutter:通过小部件树传递列表实例 - >不改变列表中实例的值
Flutter: Pass instance of list through widget tree -> is not changing the values of instances in list
我有一个包含项目列表的主屏幕 (List<book> listOfBooks
)。在子小部件中,我有一个 gridView 创建小部件 BookItem() 的项目。
我的问题是当我向 BookItem() 传递参数书时,它是书本身并在小部件 BookItem 中更改它,它不会更改 listOfBooks 中书的值。
我希望这不会造成混淆。我的问题是:是否创建了一个与 listOfBooks 无关的新实例,还是我犯了任何其他错误?
如果你这样拿listBooks的书:
listBooks.map((book){
return itemBook(book);
}).toList();
而into itemBook尝试改书,需要更新item into listBook。这会正确更新列表:
listBooks[indexBookSelected] = bookUpdated;
这不起作用:
book = bookUpdated;
当然改书后需要调用setState来更新视图
我有一个包含项目列表的主屏幕 (List<book> listOfBooks
)。在子小部件中,我有一个 gridView 创建小部件 BookItem() 的项目。
我的问题是当我向 BookItem() 传递参数书时,它是书本身并在小部件 BookItem 中更改它,它不会更改 listOfBooks 中书的值。
我希望这不会造成混淆。我的问题是:是否创建了一个与 listOfBooks 无关的新实例,还是我犯了任何其他错误?
如果你这样拿listBooks的书:
listBooks.map((book){
return itemBook(book);
}).toList();
而into itemBook尝试改书,需要更新item into listBook。这会正确更新列表:
listBooks[indexBookSelected] = bookUpdated;
这不起作用:
book = bookUpdated;
当然改书后需要调用setState来更新视图