Невозможно автоматически «преобразовать» целое число в логическое.
Объекты Dart имеют тип, и преобразование их в другой тип будет означать изменение того, каким они являются объектами, и это то, что язык решили не делать за вас.
Условие должно быть логическим, а целое число не является логическим.
У Dart очень мало способов неявного преобразования между разными объектами. тип. Единственный реальный пример - это преобразование вызываемого объекта в функцию (путем отделения метода call
), которое выполняется неявно, если контекст требует функции. (Возможно, целое число литерал в контексте double "преобразуется в double", но там никогда не бывает целого числа значение . Оно анализируется как двойное.)
Итак, если у вас есть целое число и вы хотите bool, вам нужно написать преобразование самостоятельно. Предположим, вы хотите, чтобы ноль был ложным, а ненулевой - истинным. Тогда все, что вам нужно сделать, это написать myInteger != 0
, или в данном случае:
value: widget.studentDetailsList[index].status != 0