繁体   English   中英

为什么我不能在我的构建中调用这些计算,当我已经在为另一个函数做这些计算时

[英]Why can't I call these calculations into my build, when I'm already doing it for another function

var _distancebetween 在这里引起了问题。 我不知道如何在我的小部件构建中调用它:

 void _onCameraMove(CameraPosition cameraPosition) async {
    
    var _distancebetween = await Geolocator().distanceBetween(
        lat, lng, _lastMapPosition.latitude, _lastMapPosition.longitude);
    
    _lastMapPosition = cameraPosition.target;
    var latlnglastPosition = _lastMapPosition.toString;

    setState(() {
      latlnglastPosition;
      _distancebetween;
      _lastMapPosition;
    });
  }

当我为 _latlnglastPosition 和 _lastMapPosition 设置状态时,我在构建中调用它们,如下所示:

  @override
  Widget build(BuildContext context) {

    var latlnglastPosition = _lastMapPosition.toString();
    

我可以轻松地在 Ink Response 字段中显示文本。

为什么这不适用于 _distancebetweenFinal?

在我的构建中:

var _distancebetweenFinal = _distancebetween.toString();

print(_distancebetweenFinal);
print(_distancebetween);

这会打印零...但是如果从我的 void _onCameraMove 打印,它会打印正确的值。 如何将 _onCameraMove 中的值传递到我的小部件构建中?

在 initState 中声明您的_onCameraMove()可以工作,如下所示:

  @override
  void initState() { 
    super.initState();
    _onCameraMove();
  }

并确保你的类Statefull并在build method之前调用initState

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM