簡體   English   中英

訪問Dart和flutter中的路由參數

[英]Accessing route parameters in Dart and flutter

我將 2 個參數restaurantDetails.rest_latituderestaurantDetails.rest_longitude發送到 class 以獲取 map 詳細信息

BarMapWidget(restaurantDetails.rest_latitude, restaurantDetails.rest_longitude),

在 class 我有一個有狀態的小部件

class BarMapWidget extends StatefulWidget {

  String restLatitude;
  String restLongitude;

  BarMapWidget(this.restLatitude, this.restLongitude, {Key? key}) : super(key: key);

  @override

  _BarMapWidgetState createState() => _BarMapWidgetState();

}

我正在傳遞一個字符串,所以我知道我必須將它設為 double

這是擴展的class,

class _BarMapWidgetState extends State<BarMapWidget> {


// Destination Longitude
final double _destLatitude = restLatitude;
final double _destLongitude = restLongitude;

void initState() {
    // Add destination marker

    _addMarker(
      LatLng(_destLatitude, _destLongitude),
      "destination",
      // BitmapDescriptor.defaultMarkerWithHue(90),
      BitmapDescriptor.defaultMarker
    );
    super.initState();
  }

這給我一個未定義的名稱“restLatitude”。 和未定義的名稱“restLongitude”。

如何訪問 BarMapWidget 中的變量?

您在小部件級別的restLatituderestLongitude ,請嘗試使用widget.variableName 此外,那些不匹配的數據類型。

如果您需要將BarMapWidget變量double轉換為加倍。

要在 state 級別進行初始化,您可以使用late或使用initState進行欺騙;

class BarMapWidget extends StatefulWidget {
  final double restLatitude;
  final double restLongitude;

  const BarMapWidget(this.restLatitude, this.restLongitude, {Key? key})
      : super(key: key);

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

class _BarMapWidgetState extends State<BarMapWidget> {
// Destination Longitude
  late final double _destLatitude = widget.restLatitude;
  late final double _destLongitude = widget.restLongitude;

只需添加

widget.restLatitude

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM