我一直在寻找,但找不到任何对此的参考。我想在 Dart 中创建一个私有 setter 以在更改私有变量后调用附加函数。
ViewState _state;
ViewState get state => _state;
set _state(value) {
_state = value;
notifyListeners();
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
Scr*_*bot 11
Dart 不允许私人设置器,这是事实。您可以使用自己的私有函数来破解它
ViewState _state;
ViewState get state => _state;
void _changeState(value) {
_state = value;
notifyListeners();
}
Run Code Online (Sandbox Code Playgroud)
这是我在DartPad上的示例,您可以在其中进行一些实验。
私有 setter 没有错,只是命名的选择。
正如你不能state用作变量名,因为它是 getter 的名字,你不能用作_state变量和 setter。
这有点难看,但__state用于您的变量(并相应地更新 getter 和 setter)应该可以完成工作。
编辑:正如评论中提到的,名称__state并不重要,它只需要是一个不被 getter/setter 使用的名称。_myState带有 getterstate和 setter 的变量也能_state正常工作。
| 归档时间: |
|
| 查看次数: |
3234 次 |
| 最近记录: |