0

私は 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=""
        />

これを行うためのより良い、より乾燥した方法はありますか?

ありがとう!!

4

1 に答える 1