【发布时间】:2022-01-18 07:38:58
【问题描述】:
我目前正在学习 River Pod,也是 Flutter 的新手。
在 StateNotifer 中设置新状态时,我需要创建一个新模型并替换状态
但是直接改变是行不通的
class CounterModel {
CounterModel(this.count, this.age);
int count;
int age;
}
class CounterNotifier extends StateNotifier<CounterModel> {
CounterNotifier() : super(_initialValue);
static CounterModel _initialValue = CounterModel(0,18);
void increment() {
// state.count = state.count + 1; // not working, but need like this !
state = CounterModel(state.count + 1, state.age); // working
}
}
在上面的代码中,当我尝试像 state.count = state.count + 1 这样直接更改计数变量时,没有任何改变
但是当通过创建像state = CounterModel(state.count + 1, state.age)这样的新模型来重新初始化状态时
状态模型变量似乎是不可变的,每次更改都需要重新创建!
我的问题是,如果 CounterModel 有 50 个变量怎么办,那么我必须做类似的事情
state = CounterModel (var1,var2,......,var49,var50) ;
那么,是否可以直接改变变量像
state.var1 = new_value1;
state.var2 = new_value2;
....
state.var50 = new_value50;
【问题讨论】:
标签: flutter dart flutter-provider riverpod flutter-state