条件付きレンダリングを実行する場合は、フラッターで次のように実行できます。
Column(
children: <Widget>[
if (isCondition == true)
Text('The condition is true'),
],
);
しかし、3次(if-else)条件を使用したい場合はどうなりますか?子ウィジェットが多層の場合。
これをソリューションflutter_conditional_renderingに使用できます。これは、条件付きレンダリングを強化し、if-elseおよびswitch条件をサポートします。
If-Else状態:
Column(
children: <Widget>[
Conditional.single(
context: context,
conditionBuilder: (BuildContext context) => someCondition == true,
widgetBuilder: (BuildContext context) => Text('The condition is true!'),
fallbackBuilder: (BuildContext context) => Text('The condition is false!'),
),
],
);
スイッチの状態:
Column(
children: <Widget>[
ConditionalSwitch.single<String>(
context: context,
valueBuilder: (BuildContext context) => 'A',
caseBuilders: {
'A': (BuildContext context) => Text('The value is A!'),
'B': (BuildContext context) => Text('The value is B!'),
},
fallbackBuilder: (BuildContext context) => Text('None of the cases matched!'),
),
],
);
ウィジェットのリストを(List<Widget>)
1つではなく、条件付きでレンダリングする場合。使用Conditional.list()
してConditionalSwitch.list()!