I have this React code defining optionTemplate
which is intended to be passed as a prop of a React component.
const optionTemplate = (option) => {
return (
<div
className="flex align-items-center gap-2"
style={{ fontSize: "1.5rem" }}
>
{option[props.optionGroupChildren[0]] && (
<i
className={option.icon.icon}
style={{ color: option.icon.color, fontSize: option.icon.size }}
/>
)}
{option[props.optionGroupChildren[1]] && (
<i
className={option.icon.icon}
style={{ color: option.icon.color, fontSize: option.icon.size }}
/>
)}
{option[props.optionLabel] && (
<i
className={option.icon.icon}
style={{ color: option.icon.color, fontSize: option.icon.size }}
/>
)}
<span style={{ fontSize: "1.5rem" }}>{option[props.optionLabel]}</span>
<span style={{ fontSize: "1.5rem" }}>{option[props.optionGroupLabel]}</span>
</div>
);
};
Observe this piece of code:
{option[props.optionGroupChildren[0]] && (
<i
className={option.icon.icon}
style={{ color: option.icon.color, fontSize: option.icon.size }}
/>
)}
{option[props.optionGroupChildren[1]] && (
<i
className={option.icon.icon}
style={{ color: option.icon.color, fontSize: option.icon.size }}
/>
)}
The number of elements of props.optionGroupChildren
can be arbitrary so I would like to generalize:
{option[props.optionGroupChildren[0]] && (
<i
className={option.icon.icon}
style={{ color: option.icon.color, fontSize: option.icon.size }}
/>
)}
{option[props.optionGroupChildren[1]] && (
<i
className={option.icon.icon}
style={{ color: option.icon.color, fontSize: option.icon.size }}
/>
)}
.......
{option[props.optionGroupChildren[n]] && (
<i
className={option.icon.icon}
style={{ color: option.icon.color, fontSize: option.icon.size }}
/>
)}
I googled "jsx for loop" but I have not been convinced that what I found was appropriate for my situation.