Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 如何返回颤振中的一个项目和项目列表_Dart_Flutter - Fatal编程技术网

Dart 如何返回颤振中的一个项目和项目列表

Dart 如何返回颤振中的一个项目和项目列表,dart,flutter,Dart,Flutter,我构建了一个应用程序,用于从服务器返回用户信息,这些信息可能包含项目或项目列表 我的问题是,当我将变量定义为列表时,它会返回项目列表,但当我只想返回一个项目时,它会出错;当我将变量定义为映射时,它会返回一个项目,但当我返回列表时,它会出错 我怎样才能解决这个问题 这是我的密码 import 'package:flutter/material.dart'; import 'package:idb/pages/aboutus.dart'; import 'package:idb/pages/logo

我构建了一个应用程序,用于从服务器返回用户信息,这些信息可能包含项目或项目列表 我的问题是,当我将变量定义为列表时,它会返回项目列表,但当我只想返回一个项目时,它会出错;当我将变量定义为映射时,它会返回一个项目,但当我返回列表时,它会出错 我怎样才能解决这个问题

这是我的密码

import 'package:flutter/material.dart';
import 'package:idb/pages/aboutus.dart';
import 'package:idb/pages/logout.dart';
import 'package:idb/utilities/cardinfo.dart';
import 'package:idb/utilities/getTokenParameter.dart';
import 'package:date_range_picker/date_range_picker.dart' as DateRagePicker;
import 'package:idb/utilities/postRequest.dart';

String userid = '0000';

Future getUsername() async {
  var tokeninfo = await parseJwt();
  userid = tokeninfo['117115101114105100'];
}

class HomePage extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return HomePageState();
  }
}

class HomePageState extends State<HomePage> {
  List item;

  cardfoo() async {
    Map<String, dynamic> user = await getCards(userid);

    item = user['ResponseData']['data']['ROW'];

    if (mounted) {
      setState(() {
        item = user['ResponseData']['data']['ROW'];

        print('item: ${item}');
      });
    }
    return 'success';
  }

  getTransactions(
      String cardLast4digits, String dateFrom, String dateTo) async {
    var tokeninfo = await parseJwt();
    print(tokeninfo);
    print(cardLast4digits);

    String userid = tokeninfo['117115101114105100'];
    String username = tokeninfo['11711510111411097109101'];
    String url =
        'http://192.168.128.130:';

    final Map<String, dynamic> authData = {
      'Userid': userid,
      'Username': username,
      'Last4Digit': cardLast4digits,
      'DateFrom': dateFrom,
      'DateTo': dateTo,
    };

    print('befor post: ${authData}');

    Map<String, dynamic> responseData = await post(url, authData);

    print(responseData);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text("Home"),
        ),
        body: item == null
            ? Center(
                child: CircularProgressIndicator(),
              )
            : ListView.builder(
                itemCount: item == null ? 0 : item.length,
                scrollDirection: Axis.vertical,
                shrinkWrap: true,
                itemBuilder: (BuildContext context, int index) {
                  return new Column(
                    children: <Widget>[
                      Card(
                        margin: EdgeInsets.only(
                          top: 20,
                          left: 15,
                          right: 15,
                        ),
                        shape: RoundedRectangleBorder(
                          borderRadius: BorderRadius.circular(15.0),
                        ),
                        color: Colors.white70,
                        child: new Column(
                          children: <Widget>[

                            new Padding(
                                padding: new EdgeInsets.all(7.0),
                                child: new Column(
                                  children: <Widget>[
                                    new Row(children: <Widget>[
                                      new Padding(
                                        padding: new EdgeInsets.all(7.0),
                                        child: new Text('Embossed Name:',
                                            style: new TextStyle(
                                                fontSize: 15.0,
                                                color: Colors.orange)),
                                      ),
                                      new Padding(
                                        padding: new EdgeInsets.all(7.0),
                                        child: new Text(
                                            item[index]['EMBOSSED_NAME'],
                                            style:
                                                new TextStyle(fontSize: 15.0)),
                                      ),
                                    ]),


                      SizedBox(
                        height: 10,
                      ),
                      Column(
                        children: <Widget>[
                          Row(
                            children: <Widget>[
                              FlatButton.icon(
                                textColor: Colors.blue,
                                icon: Icon(
                                    Icons.calendar_today), //`Icon` to display
                                label: Text('Transctions'),

                                onPressed: () async {
                                  final List<DateTime> picked =
                                      await DateRagePicker.showDatePicker(
                                          context: context,
                                          initialFirstDate: new DateTime.now(),
                                          initialLastDate: (new DateTime.now())
                                              .add(new Duration(days: 7)),
                                          firstDate: new DateTime(2015),
                                          lastDate: new DateTime(2020));

                                  if (picked != null && picked.length == 2) {

                                    getTransactions(
                                        item[index]['CARD_NO'],
                                        picked[0].toString(),
                                        picked[1].toString());
                                  }
                                },
                              ),
                            ],
                          ),
                        ],
                      ),
                    ],
                  );
                },
              ));
  }

  @override
  void initState() {
    super.initState();
    this.cardfoo();
  }
}
导入“包装:颤振/材料.省道”;
导入“package:idb/pages/aboutus.dart”;
导入“package:idb/pages/logout.dart”;
导入“package:idb/utilities/cardinfo.dart”;
导入“package:idb/utilities/getTokenParameter.dart”;
导入“package:date\u range\u picker/date\u range\u picker.dart”作为DateRagePicker;
导入“package:idb/utilities/postRequest.dart”;
字符串userid='0000';
Future getUsername()异步{
var tokeninfo=await parseJwt();
userid=tokeninfo['1171115101114105100'];
}
类主页扩展了StatefulWidget{
@凌驾
状态createState(){
返回HomePageState();
}
}
类HomePageState扩展了状态{
清单项目;
cardfoo()异步{
Map user=wait getCards(userid);
item=用户['ResponseData']['data']['ROW'];
如果(已安装){
设置状态(){
item=用户['ResponseData']['data']['ROW'];
打印('item:${item}');
});
}
回归"成功",;
}
getTransactions(
字符串cardLast4digits、字符串dateFrom、字符串dateTo)异步{
var tokeninfo=await parseJwt();
打印(令牌信息);
打印(CardLast4数字);
字符串userid=tokeninfo['1171115101114105100'];
字符串username=tokeninfo['117111011411097109101'];
字符串url=
'http://192.168.128.130:';
最终地图授权数据={
“Userid”:Userid,
“用户名”:用户名,
“Last4Digit”:CardLast4Digit,
“DateFrom”:DateFrom,
“DateTo”:DateTo,
};
打印('beforpost:${authData}');
Map responseData=等待发布(url、authData);
打印(应答数据);
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(“主页”),
),
正文:项==null
?中心(
子对象:CircularProgressIndicator(),
)
:ListView.builder(
itemCount:item==null?0:item.length,
滚动方向:轴垂直,
收缩膜:对,
itemBuilder:(构建上下文,int索引){
返回新列(
儿童:[
卡片(
页边距:仅限边距(
前20名,
左:15,
右:15,
),
形状:圆形矩形边框(
边界半径:边界半径。圆形(15.0),
),
颜色:颜色。白色70,
子:新列(
儿童:[
新填料(
填充:新边缘设置。全部(7.0),
子:新列(
儿童:[
新行(儿童:[
新填料(
填充:新边缘设置。全部(7.0),
子项:新文本('浮雕名称:',
样式:新文本样式(
字体大小:15.0,
颜色:颜色。橙色),
),
新填料(
填充:新边缘设置。全部(7.0),
儿童:新文本(
项目[索引][“浮雕名称”],
风格:
新的文本样式(fontSize:15.0)),
),
]),
大小盒子(
身高:10,
),
纵队(
儿童:[
划船(
儿童:[
FlatButton.icon(
textColor:Colors.blue,
图标:图标(
Icons.calendar_today),//`Icon`显示
标签:文本(“转换”),
onPressed:()异步{
最后挑选的名单=
等待DateRagePicker.showDatePicker(
上下文:上下文,
initialFirstDate:new DateTime.now(),
initialLastDate:(新的DateTime.now())
.添加(新的持续时间(天:7)),
firstDate:新的日期时间(2015年),
最后日期:新日期时间(2020年);
if(picked!=null&&picked.length==2){
getTransactions(
项目[索引][“卡号”],
已拾取[0]。toString(),
已拾取[1]。toString());
}
},
),
],
),
],
),
],
);
},
 Map<String, dynamic> user = await getCards(userid);
  Map<String, dynamic> user = (await getCards(userid))[0];