【发布时间】:2022-08-24 22:01:29
【问题描述】:
我今天更新了我的 Dart linter,并被告知 VSCode 中的问题选项卡中的更改。原来我在工作中做了很多不推荐的操作。
这是我在许多具有相同操作顺序的代码中的一个 sn-p:
class Body extends StatelessWidget {
const Body({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Consumer<CheckoutScreenState>(
builder: (context, state, _) {
return CustomFooter(
total: \'Php ${state.totalAmount}\',
inAsync: state.inAsync,
onPressed: state.isReady()
? () async {
await state.postCheckout();
String? storeName = await SecureStorage.instance.read(
key: \'storeName\',
);
if (state.orderDetails != null) {
Navigator.pushNamed(
context,
OrderReceipt.id,
arguments: {
\'state\': state,
\'storeName\': storeName,
},
);
} else {
showDialog(
context: context,
builder: (_) {
return CustomAlert(
headingText: \'Error\',
subText:
\'An error occurred while processing your order. Please try again.\',
onPressed: () {
Navigator.pop(context);
},
);
},
);
}
}
: () {},
buttonColor: state.isReady() ? kPrimaryColor : kFieldHintTextColor,
buttonText: \'Place Order\',
);
},
);
}
}
我只是想知道我违反了什么规则,以及更改代码对我来说是否如此重要。到目前为止,我还没有遇到任何问题,但 linter 建议不这样做。在异步间隙之后访问上下文有什么问题。