无法在Flutter中创建下拉按钮

问题描述 投票:0回答:1

我试图在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引发异常时,这是堆栈:

0 Object.noSuchMethod(dart:core-patch / object_patch.dart:53:5)

1 _SignupScreenState._listaCiudades。 (package:app_login_ui / screens / signup_screen.dart:199:34)

2 _FutureBuilderState.build(package:flutter / src / widgets / async.dart:732:55)

3 StatefulElement.build(package:flutter / src / widgets / framework.dart:4623:28)

4 ComponentElement.performRebuild(package:flutter / src / widgets / framework.dart:4506:15)

...══════════════════════════════════════════════════ ══════════════════════════════════════════════════

════════小部件库捕获到异常═══════════════════════════════════ ════════════════════在构建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引发异常时,这是堆栈:

0 Object.noSuchMethod(dart:core-patch / object_patch.dart:53:5)

1 _SignupScreenState._listaCiudades。 (package:app_login_ui / screens / signup_screen.dart:199:34)

2 _FutureBuilderState.build(package:flutter / src / widgets / async.dart:732:55)

3 StatefulElement.build(package:flutter / src / widgets / framework.dart:4623:28)

4 ComponentElement.performRebuild(package:flutter / src / widgets / framework.dart:4506:15)

...══════════════════════════════════════════════════ ══════════════════════════════════════════════════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

flutter flutter-layout flutter-dependencies flutter-web flutter-test
1个回答
0
投票
您可以尝试,

items: snapshot.data?.map((valorCity) { print(valorCity['name']); return new DropdownMenuItem<String>( value: valorCity['pk'].toString(), child: Text(valorCity['name'].toString()), ); })?.toList() ?? [],

© www.soinside.com 2019 - 2024. All rights reserved.