Flutter 全局List Widget 不刷新问题

2020-11-11  本文已影响0人  星邪Ara

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);

上一篇下一篇

猜你喜欢

热点阅读