Comments (9)
I mean, there's likely a different way to do what you want.
But I don't know your architecture.
from riverpod.
Local state is not supported by providers.
What is your use-case in creating the ChangeNotifier locally like that?
from riverpod.
EditQuestionScreen build before firebase fetch and deserialize. Actually I just need to know, can I create global provider with widget params in riverpod?
Like this
class AHookWidget extends HookWidget {
AHookWidget({this.question, this.answers});
final QuestionModel question;
final List<AnswerModel> answers;
// i dont want local variable like this, i want global
final aProvider = ChangeNotifierProvider(
(ref) => QuestionProvider(question: this.question, answers: this.answers));
@override
Widget build(BuildContext context) {
final provider = useProvider(aProvider);
return Container();
}
}
class ASubHookWidget extends HookWidget {
@override
Widget build(BuildContext context) {
final provider = useProvider(aProvider);
return Container();
}
}
from riverpod.
No you can't
from riverpod.
I'm sorry to hear that, thank you for your help anyway 😊
from riverpod.
may be stupid but like this
onPressed: () async {
QuestionModel question = await api.getQuestion();
List<AnswerModel> answers = await api.getAnswers();
MaterialPageRoute(builder: (context) =>
EditQuestionScreen(question: question, answers: answers));
}
class EditQuestionScreen extends StatelessWidget {
EditQuestionScreen({this.question, this.answers});
final QuestionModel question;
final List<AnswerModel> answers;
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider(
create: (context) => QuestionProvider(
question: this.question,
answers: this.answers),
child: Container());
}
}
from riverpod.
Put the questions and answers inside a provider
Then you will be able to put your ChangeNotifier in a provider too
from riverpod.
Ok, i will do that, the problem will be solved that case. Thanks again, you saved me.
from riverpod.
I think ScopedProvider is the solution.
final scopedProvider = ScopedProvider<String>((_) => throw UnimplementedError());
class AWidget extends HookWidget {
AWidget({@required this.value});
final String value;
@override
Widget build(BuildContext context) {
return ProviderScope(
overrides: [scopedProvider.overrideWithValue(this.value)],
child: BWidget()
);
}
}
class BWidget extends HookWidget {
@override
Widget build(BuildContext context) {
final providerValue = useProvider(scopedProvider);
return Text(providerValue);
}
}
from riverpod.
Related Issues (20)
- autoDispose is not working when the widget is disposed,and the same widget is registered again after the previous widget was disposed HOT 8
- `Unhandled Exception: setState() or markNeedsBuild() called during build.` when combining overrides and async providers
- We need a pattern to flow HOT 3
- Add AsyncValue documentation HOT 5
- Add dependency injection doc HOT 2
- Add WidgetRef documentation HOT 2
- await ref.watch(streamProvider.future); resolves on the first yield HOT 3
- What is the recommended way of watching derived values of state exposed through methods ? There's no mention of this in docs HOT 1
- Alternatives to AVOID initializing providers in a widget HOT 1
- Improve error message when Consumer.ref is read after the widget is unmounted HOT 3
- Future provider memory leak HOT 11
- ImageProvider generated as InvalidType HOT 4
- `AutoDisposeProvider` is getting disposed when watched in a `StreamProvider` using `async*` HOT 1
- Provider container loses data in widget test HOT 4
- AutoDisposeNotifierProvider causing state loss HOT 3
- Reword `The ref.watch method should not be called asynchronously`
- Add a DevTools extension for riverpod HOT 2
- Broken update HOT 3
- [riverpod 3] NotifierProvider doesn't work with a NotifierBase mixin.
- riverpod_generator does not respect import aliases HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from riverpod.