У меня есть виджет, который использует TabBar. Родительский виджет выполняет HTTP-вызов, который необходимо завершить, прежде чем можно будет нарисовать виджеты TabBar (они используют данные). Как заставить виджеты TabBarView ждать завершения родительского HTTP-вызова и установить переменную состояния, которая затем используется в виджетах TabBarView. Похоже, решение состоит в том, чтобы использовать FutureBuilder для всех виджетов TabBar, но как эти виджеты узнают, что нужно ждать завершения родительского элемента? Эти виджеты ожидают данных от родителя.
Родительский виджет - выполните http-вызов, установите переменную состояния x виджетов TabBarView, дождитесь x. Выдается ошибка, потому что TB1 вызывается до установки x, если я не добавлю какие-то фиктивные данные.
Родительский виджет
void initState() {
x = await _getdata();
setState(() => this.x = x);
}
...
TabBarView(
controller: _tabController,
children: [
new TB1(x),
new TB2(x),
new TB3(x),
]
)