我尝试使用此[小工具] [1]:
当我使用基本列表时,就可以了:
List testList = ["test","test","test","test","test","test","test",];
final test = DropdownSearch<String>(
mode: Mode.MENU,
showSelectedItem: true,
items: ["Brazil", "Italia (Disabled)", "Tunisia", 'Canada'],
label: "Menu mode",
hint: "country in menu mode",
popupItemDisabled: (String s) => s.startsWith('I'),
onChanged: print,
selectedItem: "Brazil");
但是当我想在我的模型客户端中使用列表时:
final test = DropdownSearch<Client>(
mode: Mode.MENU,
showSelectedItem: true,
items: model.clients,
label: "Menu mode",
hint: "country in menu mode",
// popupItemDisabled: (String s) => s.startsWith('I'),
onChanged: print,
onFind: model.getListClients(),
selectedItem: model.clients[0]);
•model.clients:
这是我的api生成的客户端列表
未显示我的视图。我使用Flutter Web。所以为什么 ?
编辑2:
in my viewmodel:
void load(BuildContext context, List args) async {
this._context = context;
setLifecycle(OnLoad());
final getAllClients = Provider.of<GetAllClient>(context);
this.clients = await getAllClients.call();
final getAllEmployees = Provider.of<GetAllEmployee>(context, listen: false);
this.employees = await getAllEmployees.call();
/*
contributors = Contributor.getFirstContrib();
*/
setLifecycle(OnLoaded());
getListClients(context);
}
Future<List<Client>> getListClients(BuildContext context)async{
print("length ${clients.length}");
return clients;
}
长度= 17,所以很好。
我认为:
final test = Padding(
padding: EdgeInsets.only(top: 12.0, left: 12.0, bottom: 12.0),
child: SizedBox(
width: 300,
child: DropdownSearch<Client>(
mode: Mode.MENU,
showSelectedItem: true,
label: "Menu mode",
hint: "country in menu mode",
// popupItemDisabled: (String s) => s.startsWith('I'),
onChanged: print,
onFind: (text) => model.getListClients(context),
selectedItem: model.clients[0]),
),
);
但是我总是有这个错误:
未捕获的错误:断言失败:file:///Users/evanma/development/flutter/packages/flutter/lib/src/widgets/framework.dart:2611:20 _debugCurrentBuildTarget ==上下文 不正确
请用items
替换onFind:
元素,因为这是在获取数据异步时使用的元素。尝试类似的东西 onFind: getClients
,其中