如何在 flutter 中获取值 ID 下拉 API

问题描述 投票:0回答:0

我想根据 API 中的 id 调用一个值显示在下拉小部件中,但是 API 中的值没有出现在下拉小部件中。

我在用户选择一个值并将其包含在列表中时对其进行初始化 这是一个下拉小部件,用于显示来自 API 的值

  String? selectedProvinsi;

  List<WilayahModel> provinsi = [];

  Future<void> _fetchDropdownValues() async {
    String url = Constant.baseURL;
    final response =
        await http.get(Uri.parse('$url/auth/mhs_siakad/biodata/get_wilayah'));
    if (response.statusCode == 200) {
      setState(() {
        provinsi = jsonDecode(response.body);
      });
    } else {
      throw Exception('Failed to fetch dropdown values');
    }
  }

  Future<void> _fetchDropdownValueById(int id) async {
    String url = Constant.baseURL;
    final response = await http.get(Uri.parse(
      '$url/auth/mhs_siakad/biodata/get_wilayah?id=$id',
    ));
    if (response.statusCode == 200) {
      final parsedResponse = jsonDecode(response.body);
      setState(() {
        selectedProvinsi = parsedResponse['id_induk_wilayah'];
      });
    } else {
      throw Exception('Failed to fetch dropdown value by id');
    }
  }

  @override
  void initState() {
    super.initState();
    _fetchDropdownValues();
  }
......
DropdownButtonHideUnderline(
              child: DropdownButton(
                hint: const Text('Provinsi'),
                value: selectedProvinsi,
                onChanged: (dynamic value) {
                  setState(() {
                    selectedProvinsi = value;
                    _fetchDropdownValueById(value);
                  });
                },
                items: provinsi.map<DropdownMenuItem<dynamic>>((item) {
                  return DropdownMenuItem<dynamic>(
                    value: item,
                    child: Text(item.toString()),
                  );
                }).toList(),
              ),
            ),
flutter dropdown
© www.soinside.com 2019 - 2024. All rights reserved.