Conditionals in JSX
Use short-circuit evaluation
return isTrue && <p>True!</p>
};
- Best approach: Move logic to sub-components
- Alternate hacky approach: Use IIFE
There are some libraries that solve this problem (JSX-Control Statements), but rather than introduce another dependency
use an IIFE and return values by using if-else statement inside
const sampleComponent = () => {
return (
<div>
{
(() => {
if (flag4) {
} else if (flag5) {
return <p>Meh</p>
} else {
return <p>Herp</p>
}
} else {
return <p>Derp</p>
}
})()
</div>
)
};
Or alternatively simply use early returns
const sampleComponent = () => {
const basicCondition = flag && flag2 && !flag3;
if (!basicCondition) return <p>Derp</p>;
if (flag4) return <p>Blah</p>;
if (flag5) return <p>Meh</p>;
return <p>Herp</p>