我想重用一个函数来更新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)
)
}
}
Run Code Online (Sandbox Code Playgroud)
函数中状态设置成功setState
,但遗憾的是状态变化并未在 UI 中体现,即build
函数未再次调用。
我的期望是应该更新,因为我通过引用stateVariable
将变量传递给函数。update
这个假设是错误的吗?
您知道一种通过引用传递状态变量以便可以通过函数幂等更新它的方法吗?