首页 > 解决方案 > 在 Column 小部件下编写三元运算符时出现错误。这实际上可以完成吗?我该如何解决?

问题描述

我有一个数组,其中包含图像 URL 和普通字符串作为其内容。我想根据正在读取的值显示图像或文本小部件。我用它来完成这项工作:

Widget build(BuildContext context) {
    final usrMap = {"tom", 'tom.png', "taommy"};
    return MaterialApp(
      title: 'Flutter Tutorial',
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter Text Widget Tutorial'),
        ),
        body: Column(
          children: [
            for( var prop in usrMap){
              prop.contains(".com")? Text(prop) : Text("not .png")
            },
        ]
         ),
      ),
    );
  }

我收到此错误无法将元素类型“设置”分配给列表类型“小部件”如何解决此问题?

标签: flutterdart

解决方案


像这样使用。

 Widget build(BuildContext context) {
    final usrMap = {
      "tom",
      'tom.png',
      "taommy",
      "sheikh.com",
    };
    return MaterialApp(
      title: 'Flutter Tutorial',
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter Text Widget Tutorial'),
        ),
        body: Column(children: [
          ...usrMap.map((e) {
            if (e.contains(".com"))
              return Text("prop");
            else
              return Text("not .png");
          }).toList(),
        ]),
      ),
    );
  }

推荐阅读