#flutter #dart
Вопрос:
Я пытаюсь получить будущее значение и присвоить его bool. Я не могу использовать асинхронное/ожидание. Это мой код, но value
он просто выводит нуль. futureFunction
ВОЗВРАТ Future<bool>
bool value;
futureFunction().then((a) { value = a; } );
print(value);
Комментарии:
1. возвращает ли функция futureFunction bool ?
2. Функция futureFunction возвращает будущее<bool> @KrishBhanushali
Ответ №1:
если вы поместите его в StatefulWidget, это должно сработать
bool value;
_StatefulWidgetDemoState() {
futureFunction().then(
(returnedValue) => setState(() {
value = returnedValue;
})
);
}
Комментарии:
1. Я уже пробовал это, но, похоже, не работает… вероятно, этот код находится в состоянии<>, а не в IDK StatefeulWidget. Но он постоянно что-то печатает в консоли, так что это не хороший знак
Ответ №2:
then
не будет ждать, чтобы закончить какое-либо задание. После завершения будущей функции then
будет выполнен код внутри. Установите then
использование await
ключевого слова use и не забудьте сделать функцию асинхронной. Пример:
getBool() async{
bool value = await futureFunction();
print(value);
}
Комментарии:
1. Спасибо, но я уже упоминал, что не могу асинхронно//ждать. Мне нужно решение без этого
2. можете ли вы сказать мне, как использовать это значение bool? Вы хотите обновить пользовательский интерфейс или что-то еще?
3. Возвращаемое значение используется в условном операторе для создания виджета. В основном (boolReturn? widget1:widget2)
4. тогда вам следует использовать FutureBuilder