Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jsx no bind rule #1444

Closed
nitish24p opened this issue Sep 22, 2017 · 1 comment · Fixed by #1459
Closed

Jsx no bind rule #1444

nitish24p opened this issue Sep 22, 2017 · 1 comment · Fixed by #1459

Comments

@nitish24p
Copy link

The no bind rule flags of the following jsx code.

renderButton(someParams){
  return(
    <ButtonComponent
      onClick={this.handleClick.bind(this, someParams)} // <- Error here
    >
      Submit
    </ButtonComponent>  
  )
}

How ever if i modify the same function

renderButton(someParams){
  const clickHandler = this.handleClick.bind(this, someParams);
  return(
    <ButtonComponent
      onClick={clickHandler}
    >
      Submit
    </ButtonComponent>  
  )
}

The error is not thrown, how ever effectively the same thing of creating a new function when the renderButton method is called takes place, only in the second case a separate variable has been assigned. But in terms of memory allocation a new function is being created in both cases and though the rule will give a sign off it'll still not impact performance.

Proposal
Modify the scope of the rule to see if bind is called within that function scope..

I may be completely wrong in some assumptions but would like a discussion here , if possible.

@ljharb
Copy link
Member

ljharb commented Sep 22, 2017

Yes, that should also warn, if possible.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
2 participants