我一直在寻找,但找不到与此相关的任何参考。我想在Dart中创建一个私有设置器,以在更改私有变量后调用其他函数。
ViewState _state;
ViewState get state => _state;
set _state(value) {
_state = value;
notifyListeners();
}
我该如何实现?
答案 0 :(得分:1)
私人二传手没什么错,只是命名的选择。
就像您不能使用state
作为变量的名称,因为它是getter的名称一样,您也不能使用_state
作为变量和设置器。
这有点丑陋,但是对变量使用__state
(并相应地更新getter和setter)应该可以完成工作。
编辑:如评论中所述,名称__state
并不重要,它只需要是一个不受getter / setter接受的名称。具有getter _myState
和setter state
的变量_state
也可以正常工作。
答案 1 :(得分:0)
Dart不允许私人设置者,是的。您可以使用自己的私有功能对其进行破解
ViewState _state;
ViewState get state => _state;
void _changeState(value) {
_state = value;
notifyListeners();
}
这里是我在DartPad上的示例,您可以在其中进行一些实验。