如果您只使用 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);
 }