title: Why Must I Put An Arrow Function Instead of Just the Return Value in React Event Handler?
body: <p>I have looked over a bit of textbooks and blog posts but most seem just mumble through without a clear explanation...</p>
  <p>in a event handler in React, I was told to write,</p>
  <pre><code>onChange = {() =&gt; setValue(someValue)}
  
  onChange = {() =&gt; this.props.someFunction(someValue)}
  </code></pre>
  <p>I just don't understand why I cannot simply write something like</p>
  <pre><code>onChange = {setValue(someValue)}
  
  onChange = {this.props.someFunction(someValue)}
  </code></pre>
  <p>since in my understanding setValue is a function by itself already, &quot;() =&gt;&quot; look absolutely redundant to me.</p>
  <p>On the other hand, if the event is defined within a class then I am allowed to write like this</p>
  <pre><code>onChange = {this.someFunction}
  </code></pre>
  <p>How come I am not required to write as aarow function in this case then? Like</p>
  <pre><code>onChange = {() =&gt; this.someFunction}
  </code></pre>
  <p>Isn't that double standard???</p>