Search code examples
flutterdartriverpodflutter-riverpodhook-widgets

Flutter Equivalent useProvider in new version of Riverpod


In previous version of riverpod we could use simply useProvider() and sending request to server without any action such as clicking on button, so in new version of riverpod i can't.

old version:

useEffect(() {
  myService.getService();
});

Scaffold(
  body: Container(
    width: double.infinity,
    height: double.infinity,
    color: Colors.white,
    child:
    useProvider(myServiceServiceProvider).when(
      idle: () {},
      loading: (){},
      success: (value){},
      error: (error, stackTrace){},
    ),
  ),
),

and my implementation in new version of riverpod:

class Home extends HookConsumerWidget {
  const Home({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context, WidgetRef ref) {

    //final future = ref.watch(dataProvider);
    useEffect(() {
      ref.read(requestProvider.notifier).send(
        method: HTTP.GET,
        endPoint: Server.$posts,
        parameters: {},
      );
      return () {};
    });

return Scaffold(
  body: Container(
    width: double.infinity,
    height: double.infinity,
    color: Colors.white,
    //HOW CAN IMPLEMENT THIS PART TO SHOW DATA IN LISTVIEW?
  ),
),

Solution

  • Is this what you're looking for?

    ref.watch(myServiceServiceProvider).when(
          idle: () {},
          loading: (){},
          data: (value){},
          error: (error, stackTrace){},
        )