我一直在寻找,但找不到任何参考。在更改私有变量后,我想在 Dart 中创建一个私有 setter 来调用附加函数。
ViewState _state;
ViewState get state => _state;
set _state(value) {
_state = value;
notifyListeners();
}
我怎样才能做到这一点?
私有设置器没有什么问题,只是命名的选择。
正如你state不能用作变量的名称,因为它是 getter 的名称,你不能_state用于变量和 setter。
这有点难看,但是__state用于您的变量(并相应地更新 getter 和 setter)应该可以完成工作。
编辑:正如评论中提到的,名称__state并不重要,它只需要是一个不被 getter/setter 采用的名称。_myState带有 getterstate和 setter的变量_state同样有效。
Dart 不允许私人二传手,这是真的。你可以用你自己的私有函数破解它
ViewState _state;
ViewState get state => _state;
void _changeState(value) {
_state = value;
notifyListeners();
}
这是我在DartPad上的示例,您可以在其中进行一些实验。