Мне нужно получить значение корзины и добавить его в качестве значка в нижней части навигации Flutter, но значение не устанавливается после функции My code void _getCartValue () {getCartcount (). Then ((value) => {print (...

0
vellai durai 2 Янв 2021 в 11:45

1 ответ

Лучший ответ

Вы не можете изменить значение внешней переменной внутри тела асинхронного выполнения ..then, ..whenComple, ..catchError
Может ты можешь попробовать это

void _getCartValue() async {
  try {
    final value = await getCartCount();
    cartlength = value;
    // setState(() {});
  } catch (_) {}
}

_getCartValue();

Изменить
Чистый подход - обернуть виджет Text в FutureBuilder следующим образом

FutureBuilder(
  future: getCartCount,
  builder: (context, snapshot) {
    return ConnectionState.done == snapshot.connectionState ? Text(
      snapshot.data.toString(),
      style: TextStyle(
          color: Colors.white,
          fontSize: 10,
          fontWeight: FontWeight.bold),
    ) : SizedBox(width: 10.0, height: 10.0, child: CircularProgressIndicator());
  },
),
0
dm_tr 2 Янв 2021 в 09:20