Flutter:如何更改其他函数中的本地值?

问题描述

我不知道这是否可行,但如何更改另一个函数中的值?

例如在这函数中,函数接收值但它不能返回它,因为它返回小部件“Switch”:

import 'package:Flutter/material.dart';

class CustumSwitch extends StatefulWidget {
  bool _switchGD;
  CustumSwitch(this._switchGD);

  @override
  _CustumSwitchState createState() => _CustumSwitchState();
}

class _CustumSwitchState extends State<CustumSwitch> {
  @override
  Widget build(BuildContext context) {
    return Switch(
        value: widget._switchGD,onChanged: (value) {
          setState(() {
            widget._switchGD = !widget._switchGD;
          });
          
        });
  }
}

解决方法

在构建期间要动态更改值的每种情况下,您都必须使用 setState() 方法。

onChanged: (value) {

  setState((){                        
    widget._switchGD = !widget._switchGD;
  });
                        
});

它会起作用..但我建议您了解一些有关 Flutter 最佳实践的知识,因为您永远不想使用非最终字段作为 Widget 参数。