Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.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
Visual studio 在if结构中定义时被视为未定义的变量_Visual Studio_Flutter - Fatal编程技术网

Visual studio 在if结构中定义时被视为未定义的变量

Visual studio 在if结构中定义时被视为未定义的变量,visual-studio,flutter,Visual Studio,Flutter,我是个新手,我面临一个小问题。受官方网站上颤振教程第二部分的启发,我想在数组为空时显示一条错误消息 错误代码如下: Undefined name 'divided'. Try correcting the name to one that is defined, or defining the name. 代码是: void _showSaved() { Navigator.of(context).push( MaterialPageRoute<void>(

我是个新手,我面临一个小问题。受官方网站上颤振教程第二部分的启发,我想在数组为空时显示一条错误消息

错误代码如下:

Undefined name 'divided'.
Try correcting the name to one that is defined, or defining the name.
代码是:

void _showSaved() {
    Navigator.of(context).push(
      MaterialPageRoute<void>(
        builder: (BuildContext context) {
          if (_saved.isEmpty) {
            final Text divided = Text('List is empty');
          } else {
            final Iterable<ListTile> tiles = _saved.map(
              (WordPair pair) {
                return ListTile(
                  title: Text(
                    pair.asPascalCase,
                    style: _biggerFont,
                  ),
                );
              },
            );
            final ListView divided = ListView(
                children: ListTile.divideTiles(
              context: context,
              tiles: tiles,
            ).toList());
          }

          return Scaffold(
              appBar: AppBar(
                title: Text('Saved Suggestions'),
              ),
              //body: _saved.isEmpty ? Text('List is empty') : ListView(children: divided),
              body: divided);
        },
      ),
    );
  }
变量是在if条件下定义的,但VSCode仍然显示变量未定义的错误。有什么我不明白的吗

请注意,使用内联条件在代码示例中的注释行中确实有效


谢谢大家!

所划分的变量范围仅限于if和else块的大括号之间 这样定义可以解决问题:

void _showSaved() {
  Navigator.of(context).push(
    MaterialPageRoute<void>(
      builder: (BuildContext context) {
        var divided;
        if (_saved.isEmpty) {
          divided = Text('List is empty');
        } else {
          final Iterable<ListTile> tiles = _saved.map(
                (WordPair pair) {
              return ListTile(
                title: Text(
                  pair.asPascalCase,
                  style: _biggerFont,
                ),
              );
            },
          );
          divided = ListView(
              children: ListTile.divideTiles(
                context: context,
                tiles: tiles,
              ).toList());
        }

        return Scaffold(
            appBar: AppBar(
              title: Text('Saved Suggestions'),
            ),
            //body: _saved.isEmpty ? Text('List is empty') : ListView(children: divided),
            body: divided);
      },
    ),
  );
}

这么简单。我确实尝试过定义它,但我没有使用关键字var。谢谢。如果你来自java bg,dart可能会让人困惑,但稍后它会很有趣