如何在Dart中使用格式良好的箭头功能?

问题描述 投票:0回答:1

在flutter / dart项目上工作我目前几乎总是在考虑减少代码大小的方法,考虑到其中一个方法是使用箭头函数来避免括号。

然而,我找不到一种方法来保持它们的美观,例如如果我使用此代码:

@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更漂亮,有标志选项。

dart flutter angular-dart
1个回答
2
投票

一般来说,如果你经过六或七级压痕,那就是重构的时候了。这样,您可以更轻松地覆盖部分内容以进行变体处理,并使人们更轻松地阅读和维护代码以了解您的意图。

在您的特定代码中,我会将ListView.builder作为您班级中的单独方法。有IDE操作来帮助这种重构。

此外,在您的代码中,() => {}是一个返回空映射的函数。你应该把它解决到() {}

© www.soinside.com 2019 - 2024. All rights reserved.