【发布时间】:2019-08-20 11:24:00
【问题描述】:
我想重用一个函数来更新StatefulWidget 的不同状态变量。更新哪个状态变量应该取决于作为参数传递给函数的变量引用。下面是一些示例代码:
class _MyScreenState extends State<MyScreen> {
String stateVariable = 'initial value';
void update(String variableRef) {
setState((() {
variableRef = 'updated value';
})
}
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () => update(stateVariable),
child: Text(stateVariable)
)
}
}
在setState 函数中成功设置了状态,但不幸的是,UI 中没有表示状态更改,即没有再次调用build 函数。
我在这里的期望是应该更新stateVariable,因为我通过引用将变量传递给update 函数。这个假设是错误的吗?
您知道一种通过引用传递状态变量的方法,以便它可以被函数幂等地更新吗?
【问题讨论】: