Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I think ternary expression are rather ok here, though not perfect:

    {cond1 && cond2
     ? <div>foo</div>
     : null
    }


And you can inline if-statements with an IIFE when you need a little more space:

    {(() => {
      if (cond1 && cond2)
        return <div>foo</div>
      else 
        ...
    })()}
Though it makes GitHub think it's a Clojure file.


     {(() => {
     })()}
Honestly I can't decide if I think this is ugly or beautiful. It's like the buffalo buffalo of JS.


That's something the "do expressions" ECMAScript proposal is meant to solve:

    {do {
      if (cond1 && cond2)
        <div>foo</div>
      else 
        ...
    }}
If JSX decides to implement "implicit" "do expressions", I suppose it would just look like this:

    {
      if (cond1 && cond2)
        <div>foo</div>
      else 
        ...
    }
http://wiki.ecmascript.org/doku.php?id=strawman:do_expressio...


It’s interesting to see that there are so many ways of doing conditions in JSX. I myself wrote a tiny library (http://github.com/yuanchuan/cond) for it several months ago and thought it made the code looks clean but suffers the same undefined issue though.




Consider applying for YC's Winter 2027 batch! Applications are open till November 2.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: