代码 > flutter中强制Statefull子元素更新
2023-11-22
为了效率,flutter的setState是只更新依赖当前State的Widget的,维护自己独立Widget,通过listen event独立更新的子Widget是不会因为setState更新的。
但有时候整个Widget的刷新是必须的,一层层向下Bind Event是不可接受的。
这时候可以通过setState更新父元素的key来实现。不同的key的父元素代表不同的组件,自然会重建了。
元素添加一个属性
var _refreshKey = UniqueKey();
build时指定key
return RawKeyboardListener(
key: _refreshKey,
需要时重设key
setState(() {
_refreshKey = UniqueKey();
});
就能替换整个组件树了。
点击登录