Skip to content
← Back to rules

react/no-will-update-set-state 正しさ

何をするのか

componentWillUpdate ライフサイクルメソッド内で setState を使用することを禁止します。

なぜ悪いのか

コンポーネントの更新手順中に状態を更新すると、不定なコンポーネント状態が発生し、許可されていません。 これにより、あなたの React アプリケーションで予期しない動作やバグが発生する可能性があります。

このルールに対して不適切なコードの例:

jsx
var Hello = createReactClass({
  componentWillUpdate: function () {
    this.setState({
      name: this.props.name.toUpperCase(),
    });
  },
  render: function () {
    return <div>Hello {this.state.name}</div>;
  },
});

このルールに対して適切なコードの例:

jsx
var Hello = createReactClass({
  componentWillUpdate: function () {
    this.props.prepareHandler();
  },
  render: function () {
    return <div>Hello {this.state.name}</div>;
  },
});

使い方

設定ファイルまたは CLI 経由でこのルールを有効化するには、次のようにします:

json
{
  "plugins": ["react"],
  "rules": {
    "react/no-will-update-set-state": "error"
  }
}
bash
oxlint --deny react/no-will-update-set-state --react-plugin

参照