From 36e5156660c8dd19865114a1cd61b4cd0059b0a2 Mon Sep 17 00:00:00 2001 From: Siahlooei Date: Thu, 18 Jul 2024 12:41:40 +0330 Subject: [PATCH] Nothing just refresh Me added to a widget. Invalidate getMyRandomProvider then create new MyRandom from getMyRandomProvider. It is simple, it can work with a thread to update random values, and widgets rebuild when a new data is provided. --- lib/widgets/simples/random.dart | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/lib/widgets/simples/random.dart b/lib/widgets/simples/random.dart index 07e1eee..39dd210 100644 --- a/lib/widgets/simples/random.dart +++ b/lib/widgets/simples/random.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:riverpod_flutter_tuts/outerapi/auth/call/getRandomData.dart'; @@ -16,15 +17,24 @@ class RandomWidget extends StatelessWidget { final AsyncValue myRandom = ref.watch(getMyRandomProvider); - return Center( - child: switch (myRandom) { - AsyncData(:final MyRandom value ) => Text( - 'myRandom: $value' - ), - AsyncError() => const Text('Oops, something unexpected happened'), - _ => const CircularProgressIndicator(), + return Row( children: [ + Center( + child: switch (myRandom) { + AsyncData(:final MyRandom value ) => Text( + 'myRandom: $value' + ), + AsyncError() => const Text('Oops, something unexpected happened'), + _ => const CircularProgressIndicator(), - }, + }, + ), + ElevatedButton( + onPressed: () { + ref.invalidate(getMyRandomProvider); + }, + child: Text("Refresh ME"), + ), + ] ); }, );