【发布时间】:2022-01-05 11:34:38
【问题描述】:
我有一个相当复杂的表单,下拉列表会根据之前的选择而变化。例如,如果我选择送货或取货选项,下一个下拉菜单将基于该选择并显示商店列表或送货选项。
我有以下代码并尝试了几个选项,但下拉菜单似乎没有根据选择更新,但我不知道为什么,因为它应该随着状态变化而刷新。
对此有最佳方法的建议吗?我认为这可能与需要唯一的 Key 有关,但这似乎并不能解决问题,并且还会导致其他问题,例如在其他字段更改时清除所选项目。
问题: 如何根据之前在 Dart/Flutter 中的表单字段选择提供动态下拉菜单?
DropDownInputField(
inputList: const [
'Delivery',
'Pickup',
],
onchanged: (selection) {
setState(() {
order.shippingOption = selection;
});
},
name: 'Shipping Option',
),
const SizedBox(
height: 20,
),
DropDownInputField(
inputList: retrieveList(order.shippingOption),
onchanged: (value) => order.deliveryOption = value,
name: 'Delivery Options',
),
选项生成函数
List<String> retrieveList(String shippingOption) {
switch (shippingOption.toLowerCase()) {
case "delivery":
return [
'Standard',
'Express',
];
break;
case "pickup":
return [
'Store 1',
'Store 2',
];
break;
状态类
class _ShippingFormScreenState extends State<ShippingFormScreen>
with SingleTickerProviderStateMixin {
TabController tabController;
Order order;
【问题讨论】:
-
你
order.shippingOption是状态变量吗?需要查看有状态的小部件类和变量声明。 -
是的。为了清楚起见,只是在问题中添加了。