gpt4 book ai didi

flutter - 使用不同名称的 setState 变量

转载 作者:IT王子 更新时间:2023-10-29 07:16:26 27 4
gpt4 key购买 nike

我正在尝试运行以下代码:

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),我自己没有找到解决方法。

最佳答案

那是不可能的。

在 Dart 中没有办法做这样的事情。唯一可能的解决方法是使用 dart:mirror,但它在 Flutter 中被禁用。

但是您可以更改函数的原型(prototype)以采用用于修改变量的闭包:

void myFunc(bool value, ValueChanged<bool> valueChanged) {
if (foo) {
setState(() => valueChanged(true));
}
}


myFunc(isCollapsed, (value) => isCollapsed = value);

myFunc(isClosed, (value) => isClosed = value);

关于flutter - 使用不同名称的 setState 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57240590/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com