jsx-eslint/eslint-plugin-react

Add configuration for no-did-update-set-state to allow usage inside condition

Open

#2021 aperta il 18 ott 2018

Vedi su GitHub
 (6 commenti) (17 reazioni) (0 assegnatari)JavaScript (2797 fork)batch import
enhancementhelp wanted

Metriche repository

Star
 (8630 star)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

As @gaearon has mentioned here and other places, using setState inside componenDidUpdate is acceptable, so long as it's within a conditional check.

Does it seem reasonable to allow a configuration option for this rule to allow setState usage within componenDidUpdate, so long as it's within a conditional check of some kind?

For example, this would pass here:

componentDidUpdate() {
  if (!this.state.isEnabled) {
    this.setState({ isEnabled: true })
  }
}

but this would still fail:

componentDidUpdate() {
  this.setState({ isEnabled: true })
}

An issue here would be that it's still not entirely guaranteed that more complex use cases wouldn't still end up in an infinite loop.

Guida contributor