Flutter基于不可变数据。就是对象的引用未改变,内容也不会改变。
问题
我是在StatefulWidget里面设置了一个全局的List,然后动态改变List里面的内容,然后使用setState刷新,结果发现没有用,点击一下虽然会多出一个新的Item,但是还是原来那个,就是List长度、内容不同,Widget显示的是同一个Widget。
比如:九宫格添加图片,第一个是添加图片,点击添加图片把图片放到List里面,然后setState刷新,结果发现页面没变化,触碰添加图片Item,就会多出一个添加图片Item。
解决
根据Flutter基于不可变数据的原理,我们直接把List换一个引用,创建一个新的List。
//方法一
List list = [];
List list2 = list.toList();
//方法二
List list = [];
List list2 = List.from(list);
网友评论