微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

来自 api 和 stepper 的 Flutter 下拉菜单

如何解决来自 api 和 stepper 的 Flutter 下拉菜单

您好,从步进器来回移动时出现错误。第一次进入 next 工作正常,但如果我按取消,然后在下拉步骤中出现错误。我得到的错误

本机“AssertionError_throwNew”;“BookingLotsModel”的实例。 检测到零个或 2 个或更多 [DropdownMenuItem] 具有相同的值)

下拉菜单

  int _currentStep = 0;
  BookingLotsModel _mySelection = BookingLotsModel(id: '0',posttitle: '');
  List<BookingLotsModel> data = [];

....

 continued() {
    print(data);
    if (_currentStep == 0) {
      APIServices.getlotsfordates(userid,_token,checking,checkout)
        .then((response) {
      setState(() {       
        data = [];
        _mySelection = BookingLotsModel(id: '',posttitle: '');
        data = bookinglotFromJson(response);
      });
     return "Sucess";
    });
    return 'null';
  }

  cancel() {
    _currentStep > 0 ? setState(() => _currentStep -= 1) : null;
  }

....

 child: DropdownButtonFormField<BookingLotsModel>(
                      isExpanded: true,isDense: true,hint: const Text("Select Lot"),items: data.map<DropdownMenuItem<BookingLotsModel>>(
                          (BookingLotsModel value) {
                        
                        return DropdownMenuItem<BookingLotsModel>(
                          child: Text(value.posttitle),value: value,);
                      }).toList(),onChanged: (newVal) {
                        setState(() {
                          _mySelection = newVal!;
                        });
                      },value: null,),

BookingLotsModel

       List<BookingLotsModel> bookinglotFromJson(String str) =>
        List<BookingLotsModel>.from(
            json.decode(str).map((x) => BookingLotsModel.fromJson(x)));
    String bookinglottoJson(List<BookingLotsModel> data) =>
        json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
    
    class BookingLotsModel {
      String id = '';
      String? postcontent;
      String posttitle = '';

    
      BookingLotsModel(
          {required this.id,required this.posttitle,});
    
      factory BookingLotsModel.fromJson(Map<String,dynamic> json) =>
          BookingLotsModel(
              id: json['post']['ID'].toString(),posttitle: json['post']['post_title'],Map<String,dynamic> toJson() => {
            "post_title": posttitle,"ID": id,};
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。