Suppose I want to initialize a text field by using the initialValue: property on a TextFormField, and I need my initial value to come from a provider. I read on the docs that calling read() from inside the build method is considered bad practice, but calling from handlers is fine (like onPressed). So I'm wondering if its fine to call read from the initialValue property like shown below?
Flutter Riverpod - using read() inside build method
2.9k Views Asked by AudioBubble At
1
There are 1 best solutions below
Related Questions in FLUTTER
- Bug report: Issue building flutter on a mac
- Is there a way to control where a Text widget overflow occurs (how many lines)?
- How to save to local storage using Flutter?
- How do you use a TextPainter to draw text?
- Passing command line arguments to a flutter app
- IconButton calling setState during onPressed shows no ripple effect
- What would be a good way for a widget to take 1/3 of the screen?
- How can I test a TextPainter?
- How can I inherit a StatefulWidget's State?
- Life cycle in flutter
- Preloading local image assets in Flutter
- Flutter app not able to run in IntelliJ
- Is there a way to call specific code right before the app is killed or moves to the background?
- How can I layout widgets based on the size of the parent?
- Multi-line TextField in Flutter
Related Questions in FLUTTER-PROVIDER
- A value of type 'MultiProvider' can't be returned from method 'build' because it has a return type of 'Widget'
- Could not find the correct provider above this MyApp widget
- Flutter what is the best approach to use navigator and ChangeNotifierProvider together
- Managing state in Flutter using Provider
- Flutter Provider Loading With Multiple Futures
- Flutter : Provider do not update data in the previous screen
- How to modify Flutter Firebase Stream listener based on Firebase Auth stream when using Provider for DI?
- Flutter Provider Error: The following ProviderNotFoundException was thrown building HomePage(dirty, state: flutter: _HomePageState#fb424):
- Flutter Provider showing data from wrong user
- Listen to changes in stream provider and call some method in Flutter
- Flutter/Dart - How to update Image after Image Picker on other Screens
- Bad state no element in Flutter Using FutureBuilder and Provider
- Provider updates variable, but the old value is passed into function that depend on it
- Flutter Riverpod - using read() inside build method
- Provider not updating UI
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?

No, you should use
useProviderif you are using hooks, or aConsumerWidget/Consumerif you are not.The difference being, the
initialValuefield is a part of the build method, and like you said,onPressedis a handler, outside of the build method.A core aspect of providers is optimizing rebuilds as provided values change. Using
context.readin the build method is nullifying this benefit as you aren't listening to the provided value.Using
context.readis highly recommended in anonymous functions (onChanged,onPressed,onTap, etc.) because those functions are retrieving the provided value at the time the function is executed. This means the function will always execute with the current value of that provider, without having to listen to the provider. The other methods for reading providers use a listener which is more expensive and unnecessary in the case of anonymous functions.In your example, you wanted to set
initialValueof aTextFormField. The following is how you could use hooks_riverpod and flutter_hooks to accomplish that.And for readers who prefer to not use hooks:
Or:
The primary difference being that
Consumerwill only rebuild its children because only they are relying on provided data.