飞镖的私人二传手

时间:2019-04-19 03:33:42

标签: dart flutter

我一直在寻找,但找不到与此相关的任何参考。我想在Dart中创建一个私有设置器,以在更改私有变量后调用其他函数。

ViewState _state;

ViewState get state => _state;

set _state(value) {
  _state = value;
  notifyListeners();
}

我该如何实现?

2 个答案:

答案 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上的示例,您可以在其中进行一些实验。