我正在尝试运行以下代码:
bool isCollapsed;
bool isClosed;
void myFunc(bool isDone){
if (condition) {
setState(() => isDone = true);
}
}
...
myFunc(isCollapsed); // somewhere in the code
...
myFunc(isClosed); // somewhere in the code
基本上,我想为两个状态变量提供一个函数,因此我试图将状态变量传递给该函数。但这显然行不通。我听说Dart Web或Flutter中没有变量表示形式(仅Dart服务器VM),我自己也没有解决方法。
答案 0 :(得分:1)
那是不可能的。
在Dart中无法做到这一点。唯一可能的解决方法是使用dart:mirror
,但在Flutter中已将其禁用。
但是您可以更改函数的原型以采用用于修改变量的闭包:
void myFunc(bool value, ValueChanged<bool> valueChanged) {
if (foo) {
setState(() => valueChanged(true));
}
}
myFunc(isCollapsed, (value) => isCollapsed = value);
myFunc(isClosed, (value) => isClosed = value);