9

我一直在寻找,但找不到任何参考。在更改私有变量后,我想在 Dart 中创建一个私有 setter 来调用附加函数。

ViewState _state;

ViewState get state => _state;

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

我怎样才能做到这一点?

4

2 回答 2

8

私有设置器没有什么问题,只是命名的选择。

正如你state不能用作变量的名称,因为它是 getter 的名称,你不能_state用于变量和 setter。

这有点难看,但是__state用于您的变量(并相应地更新 getter 和 setter)应该可以完成工作。

编辑:正如评论中提到的,名称__state并不重要,它只需要是一个不被 getter/setter 采用的名称。_myState带有 getterstate和 setter的变量_state同样有效。

于 2019-04-19T04:02:49.657 回答
5

Dart 不允许私人二传手,这是真的。你可以用你自己的私有函数破解它

ViewState _state;

ViewState get state => _state;

void _changeState(value) {
  _state = value;
  notifyListeners();
}

这是我在DartPad上的示例,您可以在其中进行一些实验。

于 2019-04-19T03:48:18.580 回答