我最近刚刚提到过在flutter中与riverpod州管理层合作。
我有与状态提供程序之间通信相关的问题。
下面是我示例代码:
class SomeClass_ONE extends stateNotifer <SomeState> {
SomeClass_ONE({required this.somevalue}):super(null);
final SomeCustomClass somevalue;
void methodOne(SomeState newstatevalue){
state = newstatevalue;
}
}
final someClassOneProvider =
StateNotifierProvider<SomeClass_ONE,SomeState>.
((ref)=>SomeClass_ONE(somevalue: SomeCustomClass()));
现在我有了另一个状态提供者类,如下所示
class SomeClass_Two extends stateNotifer <SomeStateTwo> {
SomeClass_ONE({required this.somevalue}):super(null);
final SomeCustomClass somevalue;
void methodtwo(SomeState newstatevalue){
state = newstatevalue;
}
}
final someClassTwoProvider =
StateNotifierProvider<SomeClass_Two,SomeStateTwo>
((ref)=>someClassTwoProvider(somevalue: SomeCustomClass()));
现在我想做的是,在methodOne执行时,我必须监听状态转换,必须触发methodTow,还必须更新secondproviders状态。
那么我怎样才能在类构造函数中不使用Ref来实现这个呢?
我已经尝试了ref.listner来触发并在两个类构造函数中传递Ref。但是在某些情况下,我不能直接在构造函数中使用Ref,这是前辈们遵循的一些准则。
2条答案
按热度按时间z0qdvdin1#
可以将
Ref ref
对象传递给methodtwo
方法,然后从其他StateNotifierProvider
调用必要的方法,无论如何,要引用其他类的其他方法,都需要有Ref
对象。7tofc5zh2#
尝试使用
StateNotifierProvider
提供的watch
请尝试以下代码: