我可能会误会一些东西。
_thisEvent.eventKidsPayed是一个包含documentID字符串的列表。 kidsSnapshot.data.documents [index] .documentID将为我们提供一个字符串。
_thisEvent.eventKidsPayed当前为空,列表中没有任何内容。
bool _payed = false;
if (_thisEvent.eventKidsPayed.contains(kidsSnapshot
.data.documents[index].documentID)) {
_payed = true;
}
它总是返回true。为什么?
答案 0 :(得分:1)
您需要使用setState
来更改bool。请遵循以下代码。您需要使用StatefulWidget
才能使用setState
。
bool _payed = false;
if (_thisEvent.eventKidsPayed.contains(kidsSnapshot
.data.documents[index].documentID)) {
setState(() {
_payed = true;
});
}
答案 1 :(得分:0)
问题出在我的插入和删除而不是我的.contains 对不起,造成您的不便,并浪费时间。
我这样做是错误的(这不是代码,而是逻辑)
If(value) //true if contains
array remove
else
array union
所以这是完全错误的,我修复了If(!value)。抱歉。