我有一个列表,一些索引包含下拉作为项目,但当我从列表的特定索引的下拉列表中选择一个项目,但相同的选定值将坚持另一个索引。例如,我有一个列表,其中一些索引包含国家/地区下拉列表,如结算国家/地区和运输国家/地区。我只想区分运费和结算国家/地区。
我如何以这样的方式实施onChange
,以便在不同的索引中为我提供不同的国家/地区?
这是我的清单项目
Container item(double width,Fieldlist field,int index){
return Container(
child: field.fieldname.toLowerCase().contains('country')||field.fieldname.toLowerCase().contains('state')?
countryContainer(width,field,index): textFieldContainer(width,field),
);
}
这是我国下拉的集装箱区块
Container countryContainer(double width,Fieldlist field,int index){
return Container(
child:DropdownButtonHideUnderline (
child: DropdownButton(
value: _country,
items: _dropDownCountry,
onChanged:(Country val){
enteredValueMap[field.reqKeyValue]=val.countrycode;
setState(() {
_country = val;
_country=cs.getCountry().indexOf(val) as Country;
});
},),));}
我试图找到下拉索引但无法找到它。
使用下拉按钮的值作为列表并使用传递给列表的函数的索引,并在set state函数中,将index的列表的值设置为val。功能:
Container countryContainer(double width,Fieldlist field,int index){
return Container(
child:DropdownButtonHideUnderline (
child: DropdownButton(
value: _country[index], //added [index]
items: _dropDownCountry,
onChanged:(Country val){
enteredValueMap[field.reqKeyValue]=val.countrycode;
setState(() {
_country[index] = val; //added [index]
});
},),));}
不要忘记使用在项目中找到的值初始化列表(_dropDownCountry)或将它们保留为空。