如何将列表链接到 if else?扑

Posted

技术标签:

【中文标题】如何将列表链接到 if else?扑【英文标题】:how can I link a list to if else? Flutter 【发布时间】:2020-09-18 02:44:58 【问题描述】:

我不明白为什么我总是在这里出错。我已经建立了一个(if else)语句,在一个简短的版本中。每当函数不再找到值时,即在数组中找到 3 时,我会收到错误,即数组/列表中没有更多数据。但我确实安装了一个(ELSE),它应该显示文本(“HELLO”)。我不知道确切的错误在哪里。也许有人可以帮助我,谢谢。

import 'package:flutter/material.dart';
import 'package:tasktolean/body.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget 
  @override
  _MyAppState createState() => _MyAppState();


class _MyAppState extends State<MyApp> 
  var bodyTextIndex = 0;
  var bodytext = [
    'Hello FIRST Text!',
    'Hello SECOND Text!',
    'Hello THIRD Text!',
  ];

  void buttonPress() 
    setState(() 
      bodyTextIndex = bodyTextIndex + 1;
    );
  

 @override
  Widget build(BuildContext context) 
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text(
            'TASK',
          ),
        ),
        body: bodyTextIndex <= bodytext.length
            ? Column(
                children: [
                  BodyTextChance(
                    bodytext[bodyTextIndex],
                  ),
                  FlatButton(
                    onPressed: buttonPress,
                    child: Text(
                      'CLICK ME',
                    ),
                  ),
                ],
              )
            : Center(
                child: Text('HELLO'),
              ),
      ),
    );
  


> import 'package:flutter/material.dart';
> 
> 
> class BodyTextChance extends StatelessWidget    String bodytext;
> 
>   BodyTextChance(this.bodytext);
> 
>   @override   Widget build(BuildContext context) 
>     return Text(bodytext);    

【问题讨论】:

【参考方案1】:

简答

此行使用了错误的比较运算符:

body: bodyTextIndex <= bodytext.length

它应该像这样使用&lt; 运算符:

body: bodyTextIndex < bodytext.length

更多细节

bodyTextIndex变为3时,仍满足以下条件:

bodyTextIndex <= bodytext.length

然后它引用了bodytext[3],但该元素不存在,因为它的范围是0到2。

【讨论】:

你怎么知道你可以使用哪个运算符? 这真的取决于,但我通常会使用 的可读性

以上是关于如何将列表链接到 if else?扑的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 动态链接仅适用于模拟器 |扑

涉及 e.preventDefault 的 if/else 语句

if / else语句使链接工作或禁用

SwiftUI 如何创建一个将项目添加到包含导航链接的列表的按钮

如何将列表元素的 ID 值附加到带有 .json 的链接?

关注 ListView 的底部?扑