Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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
Flutter 颤振中比较列表时如何解决错误_Flutter_Dart - Fatal编程技术网

Flutter 颤振中比较列表时如何解决错误

Flutter 颤振中比较列表时如何解决错误,flutter,dart,Flutter,Dart,如果ID与userID相同,我想放置delete图标。现在我的错误是先显示“匹配”,然后显示“不匹配”。我已经在登录后获得了我的用户ID,现在我想检查API中的数据。如果数据是从我的用户ID发布的,那么我想把删除图标。现在我得到如下输出: I/flutter (32208): match I/flutter (32208): not match 因此,我的删除图标无法显示 这是我的密码: final decodedData = json.decode(response.body); for

如果ID与userID相同,我想放置delete图标。现在我的错误是先显示“匹配”,然后显示“不匹配”。我已经在登录后获得了我的用户ID,现在我想检查API中的数据。如果数据是从我的用户ID发布的,那么我想把删除图标。现在我得到如下输出:

I/flutter (32208): match
I/flutter (32208): not match
因此,我的删除图标无法显示

这是我的密码:

final decodedData = json.decode(response.body);
 for (var item in decodedData.data){
  if(item.userId == userID){
   print('match');
   isDelete = true;
  } else if(item.userId != userID){
   print('not match');
   isDelete = false;
 } 
小部件的代码:

Expanded(
 flex: 1,  
 child: isDelete ? 
   SizedBox(
    height: 22.0,
    width: 22.0,
    child: IconButton(
      icon: Icon(Icons.delete, size: 22.0),
      onPressed: () {
     pressDelete();
    },
  )
 ) : SizedBox(height: 22.0,width: 22.0,)
),

有人能帮我吗?提前感谢。

假设您有
5个
项目,您必须为它们绘制
5个
小部件。为此,可以使用
循环
。这是一个经验

class test extends StatefulWidget {
  @override
  _testState createState() => _testState();
}


class _testState extends State<test> {

  final userId=21323123;
  // items 
  List items = [1,2,3,4,5];

  @override
  Widget build(BuildContext context) {
    return Container(
      child: Column(
      children: items.map((item){
          // Your Item design
          // Usage Example
          return YOURWIDGETDESIGN(
            child:Expanded(
              flex: 1,  
              child: item.userId==userId ? 
                SizedBox(
                  height: 22.0,
                  width: 22.0,
                  child: IconButton(
                    icon: Icon(Icons.delete, size: 22.0),
                    onPressed: () {
                  pressDelete();
                  },
                )
              ) : SizedBox(height: 22.0,width: 22.0,)
              ),
          );

        }).toList(),
      )
    );
  }
}
类测试扩展StatefulWidget{
@凌驾
_testState createState();
}
类_testState扩展状态{
最终用户ID=21323123;
//项目
列表项=[1,2,3,4,5];
@凌驾
小部件构建(构建上下文){
返回容器(
子:列(
子项:items.map((item){
//您的项目设计
//用法示例
返回您的WidgetDesign(
儿童:扩大(
弹性:1,
子项:item.userId==userId?
大小盒子(
身高:22.0,
宽度:22.0,
孩子:我的钮扣(
图标:图标(Icons.delete,大小:22.0),
已按下:(){
按Delete();
},
)
):SizedBox(高度:22.0,宽度:22.0,)
),
);
}).toList(),
)
);
}
}

谢谢您的回复。我在“匹配”时遇到问题,我想显示删除图标。现在它总是显示“不匹配”。我写的代码是不是写错了?你说解码数据包含多个项目,那么我该如何将其分开呢?我建议创建一个自定义小部件来处理这个问题,而不是一个函数。多少项目是基于用户帖子的。有时可能2个数据是相同的用户ID,或者有时没有samr USERIDF或创建自定义小部件,您能给我一些示例代码吗?对不起,我是新来的