Is it possible to use if...else... statements in React render functions?
P粉760675452
2023-08-23 18:27:14
<p>Basically, I have a react component whose <code>render()</code> function body is as follows: (This is my ideal one, which means it doesn't work at the moment)< /p>
<pre class="brush:js;toolbar:false;">render(){
return (
<div>
<Element1/>
<Element2/>
// note: logic only, code does not work here
if (this.props.hasImage) <ElementWithImage/>
else <ElementWithoutImage/>
</div>
)
}
</pre>
<p><br /></p>
There is actually a way to do exactly what the OP asked for. Just render and call the anonymous function like this:
Not exactly the same, but there is a workaround. There is a section about conditional rendering in the React documentation that you should take a look at. The following is an example of what you can do using inline if-else.
You can also handle it inside the render function, but before returning jsx.
Also worth mentioning is what ZekeDroid brought up in the comments. If you are just checking a condition and don't want to render a specific piece of code that doesn't meet the condition, you can use the
&& operator
.