我有一个使用颤振挂钩的非常简单的例子:
class PositionedTiles extends HookWidget {
@override
Widget build(BuildContext context) {
final counterList = useState<List<int>>([1,2,3,4,5]);
return Scaffold(
body: Text("Counter: ${counterList.value}"),
floatingActionButton: FloatingActionButton(
onPressed: () => counterList.value.removeAt(0),
child: const Icon(Icons.sentiment_very_satisfied)),
);
);
}
因此,单击floatingActionButton
后,打印的列表(counterList
(不会更改。我的结论是,重建没有被调用。
为什么hook没有看到列表已经更改?
在调用onPressed
以重建后,如何发出列表(counterList
(已更改的信号?
要更新状态,需要重新分配列表。
onPressed: () {
counterList.value = [...counterList.value..removeAt(0)];
log("${counterList.value}");
},