I have the following React component:
// Datalist for custom tick mark display
const datalistId = `slider-datalist-${uniqueId()}`;
const datalistItems = [];
for (let i=min; i<=max; i += stepSize) {
if (labelRenderer) {
datalistItems.push(<option key={i} value={i} label={labelRenderer(i)} />)
} else {
datalistItems.push(<option key={i} value={i} label={i} />)
}
}
return (
<div>
<input
type="range"
id={id}
value={value}
min={min}
max={max}
step={stepSize}
onChange={handleChange}
list={datalistId}
/>
<datalist id={datalistId}>
{datalistItems}
</datalist>
</div>
);
Things work fine with labelRenderer when a basic value (i.e. string or number) is provided:
<Slider
min={1}
max={10}
stepSize={1}
labelRenderer={v => {
return `**${v}**`;
}}
/>
But things blow up when I try to get it to render React JSX:
<Slider
min={1}
max={10}
stepSize={1}
labelRenderer={v => {
return (<span style={{ color: '#f00;' }}>{v}</span>);
}}
/>
Does anyone know why? I would have expected React to handle the output here just fine.

