既然 Flutter 中的 ListView 是无状态的,那怎么能改变呢?
Since a ListView in Flutter is stateless, how come it can be changed?
我认为这更像是一个哲学问题,标题几乎说明了一切。 似乎自相矛盾,ListView 派生自无状态,但可以在应用 运行 时更改。
ListView 不会在内部更改任何值。
它有一个构建器,或子级,并且在构建方法出现时已经指定了它们。
Statefull 小部件不同,它们允许您更改某些变量的状态,或者通常是小部件本身的状态。
ListView
本身并没有改变。当您在调用 setState()
中使用 StatefulWidget
时,您只是用新信息重建它。因此,ListView
永远不会保持或更改状态,您只是在每次更改时创建一个具有不同起始信息的新 ListView
。
我认为这更像是一个哲学问题,标题几乎说明了一切。 似乎自相矛盾,ListView 派生自无状态,但可以在应用 运行 时更改。
ListView 不会在内部更改任何值。 它有一个构建器,或子级,并且在构建方法出现时已经指定了它们。
Statefull 小部件不同,它们允许您更改某些变量的状态,或者通常是小部件本身的状态。
ListView
本身并没有改变。当您在调用 setState()
中使用 StatefulWidget
时,您只是用新信息重建它。因此,ListView
永远不会保持或更改状态,您只是在每次更改时创建一个具有不同起始信息的新 ListView
。