如果您只使用 dart 包(riverpod)或如何在没有上下文的情况下使用 Provider,如何收听更改?
How to listen to changes if you are using dart only package(riverpod) or how to use Provider where there is no context?
我正在学习 flutter,如果我得到一个监听 dart only 包 aka riverpod 变化的例子,我会很容易理解。
我在 class 中使用 Provider,那里没有无状态或有状态的小部件(基本上没有 Buildcontext)。
所以我将上下文从其他 class 传递给这个 class 就像这样虽然它有效但我觉得它不正确。
class SaveToLocal {
final BuildContext context;
SaveToLocal(this.context);
foo(){
//used context here
var model = Provider.of<MyList>(context, listen: false);
}
}
然后我遇到了 riverpod,其中 dart only 包不需要上下文,但我很困惑,因为我找不到 ProviderScope.I 之类的东西还搜索了示例,但其中大部分都在 flutter_riverpod 不在 riverpod 上。
This example on pub.dev 正在使用 FutureProvider 如果我只想从模型中获取怎么办
我指的是模型
class MyList extends ChangeNotifier {
List<String> _myList = [];
List<String> get myList => _myList;
foo(){
//some task here
notifyListeners();
}
所以这里有问题
1.Is 这种使用上下文的恰当方式
2.Is 还有其他方法可以实现这个
3.Can 我得到了一个像 CounterApp 这样的简单示例,其中显示了阅读和观看?
对于第一个问题,答案是否定的:上下文不应保存在某些外部 class 因为它可能会导致问题。
我 link 你这些如何在应用程序中正确管理状态的例子:
抱歉,我很困惑,我认为 riverpod 仅适用于 dart 类 但它适用于非 flutter 应用程序(阅读 reso coder's article 后说),因为我进一步尝试使用 flutter_riverpod 并在没有上下文的情况下使用(如 Random 先生所说)并且工作正常。
class SaveToLocal {
final container = ProviderContainer();
foo(){
var model = container.read(listProvider);
}
我正在学习 flutter,如果我得到一个监听 dart only 包 aka riverpod 变化的例子,我会很容易理解。 我在 class 中使用 Provider,那里没有无状态或有状态的小部件(基本上没有 Buildcontext)。
所以我将上下文从其他 class 传递给这个 class 就像这样虽然它有效但我觉得它不正确。
class SaveToLocal {
final BuildContext context;
SaveToLocal(this.context);
foo(){
//used context here
var model = Provider.of<MyList>(context, listen: false);
}
}
然后我遇到了 riverpod,其中 dart only 包不需要上下文,但我很困惑,因为我找不到 ProviderScope.I 之类的东西还搜索了示例,但其中大部分都在 flutter_riverpod 不在 riverpod 上。
This example on pub.dev 正在使用 FutureProvider 如果我只想从模型中获取怎么办
我指的是模型
class MyList extends ChangeNotifier {
List<String> _myList = [];
List<String> get myList => _myList;
foo(){
//some task here
notifyListeners();
}
所以这里有问题
1.Is 这种使用上下文的恰当方式
2.Is 还有其他方法可以实现这个
3.Can 我得到了一个像 CounterApp 这样的简单示例,其中显示了阅读和观看?
对于第一个问题,答案是否定的:上下文不应保存在某些外部 class 因为它可能会导致问题。
我 link 你这些如何在应用程序中正确管理状态的例子:
抱歉,我很困惑,我认为 riverpod 仅适用于 dart 类 但它适用于非 flutter 应用程序(阅读 reso coder's article 后说),因为我进一步尝试使用 flutter_riverpod 并在没有上下文的情况下使用(如 Random 先生所说)并且工作正常。
class SaveToLocal {
final container = ProviderContainer();
foo(){
var model = container.read(listProvider);
}