私は elixir を初めて使用し、このコンポーネントを DRY でレンダリングするのに問題があります。この CardHeader コンポーネントがあります
<CardHeader
:if={{ not is_nil(@truck_load.sand_type) }}
background_color={{ @truck_load.sand_type_background_color }}
text_color={{ @truck_load.sand_type_text_color }}
title={{ @truck_load.sand_type }}
:if={{ not is_nil(@truck_load.measured_weight) }}
info={{"#{@truck_load.measured_weight} lb (#{
Weight.convert_pounds_to_tons_and_round(@truck_load.measured_weight, 2)
} tons)"}}
/>
@truck_load.measured_weight 値がある場合とない場合があります。その場合、info 変数をその値に設定し、文字列補間を使用して測定単位を表示します。@truck_load.measured_weight 値がない場合、測定単位を表示したくないので、info を空の文字列に設定します。
@truck_load.measured_weight が次のように nil かどうかをチェックする別の CardHeader コンポーネントがないと、これを機能させる方法がわかりません。
<CardHeader
:if={{ not is_nil(@truck_load.sand_type) }}
background_color={{ @truck_load.sand_type_background_color }}
text_color={{ @truck_load.sand_type_text_color }}
title={{ @truck_load.sand_type }}
:if={{ is_nil(@truck_load.measured_weight) }}
info=""
/>
これを行うためのより良い、より乾燥した方法はありますか?
ありがとう!!