簡體   English   中英

如何從 Provider 創建一個 dropdownList ? (撲)

[英]How do I create a dropdownList from Provider ? (Flutter)

我創建了一個城市模型,並為此創建了一個提供者類,

class CityModel {
  String cityId;
  String cityName;

  CityModel({this.cityId, this.cityName});
}

這是提供者類

class CitiesProviders extends ChangeNotifier {
  List<CityModel> citiesData = [];

  void addData(CityModel data) {
    citiesData.add(data);
    notifyListeners();
  }

  List<String> get cityNames {
    List<String> names = [];
    citiesData.map((value) {
      names.add(value.cityName);
    });
    return names;
  }
}

我只是想從城市數據列表中獲取城市名稱並使用該名稱列表創建一個下拉列表。

DropdownButton<String>(
      value: currVal,
      items: Provider.of<CitiesProviders>(context)
          .cityNames
          .map<DropdownMenuItem<String>>((String value) {
        return DropdownMenuItem<String>(
          value: value,
          child: Text(value),
        );
      }).toList(),
      onChanged: (value) {
        currVal = value;
      },
    ),

但是我沒有在屏幕上看到任何東西,也沒有錯誤消息。 我做的一切都正確嗎? 或者有沒有更好的方法來做到這一點? 任何建議和答案都會有所幫助。 謝謝!

我相信問題是你有:

class CitiesProviders extends ChangeNotifier {}

你應該有:

class CitiesProviders with ChangeNotifier {}

我在您的其余代碼中沒有看到任何其他問題,但我仍然是 Flutter 的新手。

我的錯!

List<String> get cityNames {
    List<String> names = [];
    citiesData.map((value) {
      names.add(value.cityName);
    }).toList(); // Added here
    return name)s;
  }

我添加了 toList() 現在它正在工作。

暫無
暫無

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

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