如何在Dart中使用格式正确的箭头功能?

时间:2019-02-17 05:55:41

标签: dart flutter angular-dart

在处理Flutter / Dart项目时,我目前几乎总是在考虑一种减小代码大小的方法,考虑到其中之一就是使用箭头功能来避免使用括号。< / p>

但是我找不到让它们保持漂亮外观的方法,例如如果我使用此代码:

@widget
Widget poscompExams() => StoreConnector<AppState, ViewModel>(
    converter: ViewModel.fromStore,
    builder: (BuildContext context, ViewModel vm) => Scaffold(
        body: Column(
          children: <Widget>[
            Expanded(
              child: ListView.builder(
                itemCount: vm.poscomp.exams.length,
                itemBuilder: (BuildContext context, int index) {
                  return ListTile(
                    title: Text('Test'),
                    subtitle: const Text('Inserção das provas em andamento'),
                    leading: const Icon(Icons.computer),
                    onTap: () => {}
                  );
                },
              ),
            ),
          ],
      );
    },
  );

如果看起来像这样会更好:

@widget
Widget poscompExams() => 
  StoreConnector<AppState, ViewModel>(
    converter: ViewModel.fromStore,
    builder: (BuildContext context, ViewModel vm) => 
      Scaffold(
        body: Column(
          children: <Widget>[
            Expanded(
              child: ListView.builder(
                itemCount: vm.poscomp.exams.length,
                itemBuilder: (BuildContext context, int index) {
                  return ListTile(
                    title: Text('Test'),
                    subtitle: const Text('Inserção das provas em andamento'),
                    leading: const Icon(Icons.computer),
                    onTap: () => {}
                  );
                },
              ),
            ),
          ],
      );
    },
  );

我研究了某种方法并找到了dart_style,但似乎遵循了相同的格式进行格式化。

像Javascript这样更漂亮,带有标志选项会很好。

1 个答案:

答案 0 :(得分:2)

通常,如果您的缩进级别超过了六或七个级别,那么现在该重构了。这将使您更容易覆盖它的各个部分以进行变体,并使人们阅读和维护您的代码以更容易理解您的意图。

在您的特定代码中,我将ListView.builder作为类中的单独方法删除。有IDE操作可以帮助进行这种重构。

此外,在您的代码中,() => {}是一个返回空映射的函数。您应该将其修复为() {}