颤振包含始终返回true

时间:2020-09-29 17:56:21

标签: flutter

我可能会误会一些东西。

_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。为什么?

2 个答案:

答案 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)。抱歉。