flutter - 有限数组上的无限循环

flutter - infinite loop on a finite array

我不明白为什么我的代码的结果是无限循环。

class _SearchUserState extends State<SearchUser> {
  List usernames = [];
 @override
  Widget build(BuildContext context) {
    var invitedBy = widget.snapshot.data()["invitedBy"];
    final FirebaseFirestore _firestore = FirebaseFirestore.instance;
    invitedBy.forEach((userId) async {
      try {
        var snap = await _firestore.collection('users').doc(userId).get();
        var username = snap.data()!["username"];
        print(username);
        setState(() {
          usernames.add(username);
        });
      } catch (err) {
        print(err);
      }
    });
 Text("invitedBy length ${invitedBy.length}"),
        Text("usernames length ${usernames.length}")

对于最后两行代码,我得到:"invitedBy length 1""usernames length + infinite number"

您正在 build 方法中调用 setState。这会触发另一个构建,并再次调用 setState,依此类推...