Как инициировать значение ValueNotifier из будущего - PullRequest
0 голосов
/ 10 января 2020

Мне нужно инициировать мой ChangeNotifierProvider<ValueNotifier> из http результата. У меня есть такой сервис.

class AddressService {
  Future<Address> getMainAddress() async {
     return await callHttpHere();
  }
}

А по моему StatelessWidget:

Widget build(BuildContext context){
  return Scaffold(
    body: ChangeNotifierProvider<ValueNotifier<Address>>(
      create: (_) => ValueNotifier(IWantInitiateThisFrom_GetMainAddress);
    ),
  );
}

1 Ответ

2 голосов
/ 10 января 2020

Вы можете использовать FutureBuilder:

Widget build(BuildContext context) {
  return Scaffold(
    body: FutureBuilder(
      builder: (context, AsyncSnapshot<Address> snapshot) {
        if (!snapshot.hasData) return Container();

        return ChangeNotifierProvider<ValueNotifier<Address>>(
          create: (_) => ValueNotifier(snapshot.data),
        );
      },
    ),
  );
}
...