Ошибка трепетания при выборе выпадающей кнопки

#flutter #dart

#трепетание #dart

Вопрос:

Привет, я новичок в разработке приложений Flutter, поэтому, пожалуйста, помогите. При первом запуске приложения все работает нормально, но во время выбора значения dorpdown выберите, а затем получите ошибку, используя GridView.countвведите описание изображения здесь.

    ProductsModel values = snapshot.data;
   List<Product> results = values.data;
    List<List<Inventory>> productList=values.data[index].inventory;
    List<Inventory> productInventoryList=productList[0];       
                  
                         child: DropdownButton<Inventory>(
                          items: productInventoryList.map((proInventory) => 
                          DropdownMenuItem<Inventory>(
                            child: Text(proInventory.label " " proInventory.weight),
                            value: proInventory,
                          )).toList(),
                          onChanged: (Inventory value) {
                            setState(() {
                              productInventoryDropDown = value;
                            });
                          },
                          isExpanded: false,
                          value: productInventoryDropDown,
                          hint: productInventoryList[0].weight == null ? Text('Select Weight') : 
                              Text(productInventoryList[0].label " " productInventoryList[0].weight,
                            style: TextStyle(color: Colors.black),
                          ),
                        ),
  

Комментарии:

1. добавить код класса инвентаря

2. дочерний элемент: выпадающая кнопка <Инвентарь> ( элементы: Список продуктов.карта ((Проинвенторий инвентаря) => Выпадающий список <Инвентарь> (дочерний элемент: текст (proInventory.label » » proInventory. вес), значение: proInventory,)).ToList(),OnChanged: (Значение инвентаризации) { setState(() { inList[index] = значение; }); },

3. «инвентарь»: [ { «StoreID»: «5f5c6402db666e253c57866d», «метка»: «1», «вес»: «кг», «цена»: «100», «по умолчанию»: false },]

4. пожалуйста, подскажите мне, что мне делать.

Ответ №1:

 
ProductsModel values = snapshot.data;
   List<Product> results = values.data;
    List<List<Inventory>> productList=values.data[index].inventory;
    List<Inventory> productInventoryList=productList[0];       
                       productInventoryDropDown=productInventoryList[0]; // this variable must have 1 value of the list because in dart by default there is null value or provide the hintText to `DropdownButton` 
                         child: DropdownButton<Inventory>(
                          items: productInventoryList.map((proInventory) => 
                          DropdownMenuItem<Inventory>(
                            child: Text(proInventory.label " " proInventory.weight),
                            value: proInventory,
                          )).toList(),
                          onChanged: (Inventory value) {
                            setState(() {
                              productInventoryDropDown = value;
                            });
                          },
                          isExpanded: false,
                          value: productInventoryDropDown,
                          hint: productInventoryList[0].weight == null ? Text('Select Weight') : 
                              Text(productInventoryList[0].label " " productInventoryList[0].weight,
                            style: TextStyle(color: Colors.black),
                          ),
                        ),
  

Комментарии:

1. Пожалуйста, не добавляйте «Спасибо» к каждому из ваших сообщений.

2. привет @ChristopherMoore Я просто следую code of conduct за командой Google flutter.

3. Пожалуйста, следуйте правилам сайта, на котором вы находитесь в данный момент, переполнение стека. Кодекс поведения от команды Google Flutter здесь не применяется. Кроме того, не используйте кодовые блоки для текста, который не является кодом.

4. хорошо, @ChristopherMoore Спасибо за ваши предложения. имейте в виду в следующий раз.

5. Спасибо за ответ, этот код работает, но как использовать в GridView. Текущий выбор определенного одного значения из выпадающего списка влияет на все список одного и того же значения.