我试图在flutter中使用json中的Dropdown,但是出现错误,我无法看到它:
Widget _listaCiudades(){
//citiesProvider.getCities().then((value) => print(value));
return FutureBuilder(
future: citiesProvider.getCities(),
builder: (context, AsyncSnapshot <List<dynamic>> snapshot) {
//print('project snapshot data is: ${snapshot.data}');
return DropdownButton(
style: TextStyle(
fontFamily: 'Monserrat',
fontStyle: FontStyle.normal,
fontSize: 20,
),
disabledHint: Text("You can't select anything."),
items: snapshot.data.map((valorCity) {
print(valorCity['name']);
return DropdownMenuItem<String>(
value: valorCity['pk'].toString(),
child: Text(valorCity['name'].toString()),
);
}).toList(),//allCities(snapshot.data),
onChanged: (String newValue) {
setState(() {
value = newValue;
});
}
);
},
);
}}
这是输出:
Performing hot restart...
正在将文件同步到针对x86构建的设备Android SDK ...在5.373毫秒内重新启动应用程序。
════════小部件库捕获到异常═══════════════════════════════════ ════════════════════在构建FutureBuilder>(脏,状态:_FutureBuilderState>#819ba)时引发了以下NoSuchMethodError:方法“ map”在null上被调用。接收者:null尝试调用:map>(Closure:(dynamic)=> DropdownMenuItem)
相关的引起错误的小部件是:FutureBuilder>文件:/// C:/Users/FALABELLA/Desktop/Flutter/flutter-app-login-ui/lib/screens/signup_screen.dart:186:12引发异常时,这是堆栈:
...══════════════════════════════════════════════════ ══════════════════════════════════════════════════
════════小部件库捕获到异常═══════════════════════════════════ ════════════════════在构建FutureBuilder>(脏,状态:_FutureBuilderState>#819ba)时引发了以下NoSuchMethodError:方法“ map”在null上被调用。接收者:null尝试调用:map>(Closure:(dynamic)=> DropdownMenuItem)
相关的引起错误的小部件是:FutureBuilder>文件:/// C:/Users/FALABELLA/Desktop/Flutter/flutter-app-login-ui/lib/screens/signup_screen.dart:186:12引发异常时,这是堆栈:
...══════════════════════════════════════════════════ ══════════════════════════════════════════════════I / flutter(7314):AartselaarI / flutter(7314):AbancayI / flutter(7314):AbbotsfordI / flutter(7314):阿宾登I / flutter(7314):AbseconI / flutter(7314):阿布扎比I / flutter(7314):相思树I / flutter(7314):阿卡里瓜I / flutter(7314):阿德莱德I / flutter(7314):AeropuertoI / flutter(7314):阿瓜I / flutter(7314):Agua AmarillaI / flutter(7314):Agua FriaI / flutter(7314):Agua Salada
items: snapshot.data?.map((valorCity) {
print(valorCity['name']);
return new DropdownMenuItem<String>(
value: valorCity['pk'].toString(),
child: Text(valorCity['name'].toString()),
);
})?.toList() ?? [],