У меня есть виджет со строителем предметов. В конструкторе элементов я хочу создать раскрывающийся список для каждого элемента.
Для свойства value
этого DropdownMenuItem
я использую SaleRef _selectedRef;
Проблема в том, что когда я объявляю это SaleRef _selectedRef;
внутри itemBuilder , значение не меняется после выбора элемента.
Когда я объявляю его вне этого виджета, но в классе он меняет значение каждого раскрывающегося списка
Что можно сделать, чтобы выбрать отдельные значения для каждого раскрывающегося списка?
Это код для создания предметов
ListView.separated(
itemBuilder: (context, index) {
return Row(
children: <Widget>[
Container(
height: 40,
width: MediaQuery.of(context).size.width * 1 / 5,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: new BorderRadius.circular(25.0),
border: Border.all(
color: Colors.grey,
style: BorderStyle.solid,
width: 0.80),
),
child: DropdownButton<SaleRef>(
hint: Text(" Select Ref"),
value: _selectedRef,
onChanged: (SaleRef value) {
setState(() {
_selectedRef = value;
print(_selectedRef.refID);
});
},
items: _filteredSaleRef.map((SaleRef ref) {
return DropdownMenuItem<SaleRef>(
value: ref,
child: Row(
children: <Widget>[
Text(
" " + ref.refName,
style: TextStyle(color: Colors.black),
),
],
),
);
}).toList(),
),
),
],
);
},
separatorBuilder: (context, index) {
return Divider(height: 16);
},
itemCount: filteredShopItem.length,
)
Когда я объявляю это так
class _AssignRefPageState extends State<AssignRefPage>
with {
SaleRef _selectedRef;
Это происходит после выбора значения
Когда я провозглашаю это так внутри конструктора, как это
itemBuilder: (context, index) {
SaleRef _selectedRef;
return Row(
Это то, что я получаю, это всегда подсказка, даже после того, как я выберу один