Reactのフックで関数をバインドするにはどうすればよいですか?

ヘマドリ・ダサリ

基本的に、コンストラクターでイベントハンドラー関数をバインドするか、以下のようにReactクラスコンポーネントで矢印関数として作成します。

class Test extends Component{
  constructor(props){
    super(props);
    this.state = { count:0 };
    this.setCount = this.setCount.bind(this);
  }

  setCount() {
    this.setState({count: this.state.count + 1});
  }

  render() {
    return <button onClick={this.setCount}>Increase</button>
  }
}

しかし、React v16.7.0でフックが導入された後、クラスコンポーネントは状態のある機能コンポーネントになりました。

では、関数コンポーネントのフックで関数をバインドするにはどうすればよいですか?

ヤンシュンテイ

関数にはないので、関数コンポーネントに関数/コールバックをバインドする必要はありませんthisクラスでは、コールバック内のがコンポーネントのインスタンス自体を参照してthisいることを確認する必要があるため、バインドすることが重要thisでした。ただし、.bindコンストラクターで実行することには、コンポーネントのライフサイクル全体で1回関数を作成するという別の便利なプロパティがあり、のすべての呼び出しで新しいコールバックが作成されるわけではありませんrender()Reactフックを使用してコールバックを1回だけ初期化するには、を使用しますuseCallback

クラス

class Foo extends Component {
  constructor(props) {
    super(props);
    this.handleClick = this.handleClick.bind(this);
  }

  handleClick() {
    console.log('Click happened');
  }

  render() {
    return <Button onClick={this.handleClick}>Click Me</Button>;
  }
}

フック

function Foo() {
  const memoizedHandleClick = useCallback(
    () => {
      console.log('Click happened');
    },
    [], // Tells React to memoize regardless of arguments.
  );
  return <Button onClick={memoizedHandleClick}>Click Me</Button>;
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

マップされた関数をバインドするにはどうすればよいですか?

分類Dev

react jsの画像onloadイベントのコールバックで関数を使用するにはどうすればよいですか?

分類Dev

戻り値のあるコールバックで関数インターフェイスを使用するにはどうすればよいですか

分類Dev

Reactのイベントハンドラーの外でバインドされた関数を実行するにはどうすればよいですか?

分類Dev

Enterキーをtkinterの関数にバインドするにはどうすればよいですか?

分類Dev

Enterキーをtkinterの関数にバインドするにはどうすればよいですか?

分類Dev

.load()の後に.click()関数を再バインドするにはどうすればよいですか?

分類Dev

コールバック関数のタイプを指定するにはどうすればよいですか?

分類Dev

関数ベースのビューにフィルターバックエンドを追加するにはどうすればよいですか?

分類Dev

typescriptのクラスメソッドに関数型インターフェイスを適用するにはどうすればよいですか?

分類Dev

メンバー関数をstd :: functionにバインドするにはどうすればよいですか?

分類Dev

plsql関数でバインド変数を使用するにはどうすればよいですか?

分類Dev

bunyanロギング関数をES6のクラス関数にバインドするにはどうすればよいですか?

分類Dev

複数のドライバーで関数を使用するにはどうすればよいですか?

分類Dev

非同期関数でreactフック「useMemo」を使用するにはどうすればよいですか?

分類Dev

スレッドでメンバー関数を実行するにはどうすればよいですか?

分類Dev

C ++:メンバー関数へのポインターを含む任意のファンクターを取得できるように、関数をオーバーロードするにはどうすればよいですか?

分類Dev

インターフェイスの一部の関数のみをオーバーライドするにはどうすればよいですか?

分類Dev

「バックグラウンド」でスクリプトの一部(単一の関数)を実行するにはどうすればよいですか?

分類Dev

CustomPainterのペイント関数でキャンバスのオフセットを取得するにはどうすればよいですか?

分類Dev

Tensorflow、特定のフォワード関数のバックワードパスを計算するにはどうすればよいですか

分類Dev

kotlinで、コールバックをラップするサスペンド関数をモックするにはどうすればよいですか?

分類Dev

TensorFlowバックエンドでKerasの損失関数をマスクするにはどうすればよいですか?

分類Dev

複数のヘッダーファイルのインターフェイスからオーバーライドされた関数を宣言するときにコードの重複を回避するにはどうすればよいですか?

分類Dev

[関数]タイプの変数をデバッグするにはどうすればよいですか?

分類Dev

マップ関数の変数を型にバインドするにはどうすればよいですか?

分類Dev

アプリがバックグラウンドモードのときに関数を実行するにはどうすればよいですか?

分類Dev

Reactクラスから自動バインドされた関数にアクセスするにはどうすればよいですか?

分類Dev

関数にフェードイン効果を適用するにはどうすればよいですか?

Related 関連記事

  1. 1

    マップされた関数をバインドするにはどうすればよいですか?

  2. 2

    react jsの画像onloadイベントのコールバックで関数を使用するにはどうすればよいですか?

  3. 3

    戻り値のあるコールバックで関数インターフェイスを使用するにはどうすればよいですか

  4. 4

    Reactのイベントハンドラーの外でバインドされた関数を実行するにはどうすればよいですか?

  5. 5

    Enterキーをtkinterの関数にバインドするにはどうすればよいですか?

  6. 6

    Enterキーをtkinterの関数にバインドするにはどうすればよいですか?

  7. 7

    .load()の後に.click()関数を再バインドするにはどうすればよいですか?

  8. 8

    コールバック関数のタイプを指定するにはどうすればよいですか?

  9. 9

    関数ベースのビューにフィルターバックエンドを追加するにはどうすればよいですか?

  10. 10

    typescriptのクラスメソッドに関数型インターフェイスを適用するにはどうすればよいですか?

  11. 11

    メンバー関数をstd :: functionにバインドするにはどうすればよいですか?

  12. 12

    plsql関数でバインド変数を使用するにはどうすればよいですか?

  13. 13

    bunyanロギング関数をES6のクラス関数にバインドするにはどうすればよいですか?

  14. 14

    複数のドライバーで関数を使用するにはどうすればよいですか?

  15. 15

    非同期関数でreactフック「useMemo」を使用するにはどうすればよいですか?

  16. 16

    スレッドでメンバー関数を実行するにはどうすればよいですか?

  17. 17

    C ++:メンバー関数へのポインターを含む任意のファンクターを取得できるように、関数をオーバーロードするにはどうすればよいですか?

  18. 18

    インターフェイスの一部の関数のみをオーバーライドするにはどうすればよいですか?

  19. 19

    「バックグラウンド」でスクリプトの一部(単一の関数)を実行するにはどうすればよいですか?

  20. 20

    CustomPainterのペイント関数でキャンバスのオフセットを取得するにはどうすればよいですか?

  21. 21

    Tensorflow、特定のフォワード関数のバックワードパスを計算するにはどうすればよいですか

  22. 22

    kotlinで、コールバックをラップするサスペンド関数をモックするにはどうすればよいですか?

  23. 23

    TensorFlowバックエンドでKerasの損失関数をマスクするにはどうすればよいですか?

  24. 24

    複数のヘッダーファイルのインターフェイスからオーバーライドされた関数を宣言するときにコードの重複を回避するにはどうすればよいですか?

  25. 25

    [関数]タイプの変数をデバッグするにはどうすればよいですか?

  26. 26

    マップ関数の変数を型にバインドするにはどうすればよいですか?

  27. 27

    アプリがバックグラウンドモードのときに関数を実行するにはどうすればよいですか?

  28. 28

    Reactクラスから自動バインドされた関数にアクセスするにはどうすればよいですか?

  29. 29

    関数にフェードイン効果を適用するにはどうすればよいですか?

ホットタグ

アーカイブ