React can't know that your array is static, so you get the warning. The most practical thing to do here is to write something like:
var dl;
if (item.sale) {
dl = <dl key="sold">
<dt>Sale</dt>
<dd className="formatted">{item.sale}</dd>
<dt>SRP</dt>
<dd>{item.srp}</dd>
</dl>;
} else {
dl = <dl key="unsold">
<dt>Price</dt>
<dd className="formatted">{item.srp}</dd>
</dl>;
}
Providing the keys on the root tells React how it should reconcile the lists when item.sale
changes.
I tend to find this easier to read as well.