小道具でコールバック関数を呼び出す

ヘンドロ・フェブリアン

要素の小道具でコールバックを呼び出すことについて少し混乱しています。

ここにボタンがあるとしましょう。

<Button
  onPress={() => { loadMore()}}
  title="Load More"
  backgroundColor='#0A55C4' />

違いは何ですか:

onPress={() => { this.loadMore()}}

onPress={this.loadMore()}

onPress={this.loadMore}

それらはすべてうまく機能しているようです。しかし、私はそれらの間に違いがあるのだろうか?ありがとう

ニコラスタワー

onPress = {this.loadMore()}

これは間違いである可能性が非常に高いです。これは、「すぐにloadMoreを呼び出し、その結果を小道具としてコンポーネントに渡す」ことを意味します。loadMoreが他の関数を生成するファクトリでない限り、おそらくこれを実行したくないでしょう。

onPress = {this.loadMore}

これは、「コンポーネントにより多くの負荷を渡す」ことを意味します。多くの場合、これは必要なことですが、loadMoreが呼び出されると、thisそれを修正するための手順を実行しない限り未定義なります。たとえば、コンストラクターで関数をバインドしたり、矢印関数として作成したりできます。

onPress = {()=> {this.loadMore()}}

これは、「新しい関数を作成し、それをコンポーネントに渡す」ことを意味します。これは、前のケースで述べた問題に対する可能な解決策の1つです。

レンダリングが呼び出されるたびに新しい関数を作成するという欠点があります。関数の作成自体はかなり軽量ですが、Buttonコンポーネントが古いonPressプロップと新しいonPressプロップを比較し、それらが変更されたことを確認して、再レンダリングする必要があると考える可能性があることを意味します。この追加の再レンダリングは、パフォーマンスの考慮事項になる可能性があります。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

コールバック関数で__doPostBackを呼び出す方法

分類Dev

bxsliderコールバック内の関数を呼び出す

分類Dev

コールバックなしでブースト関数を呼び出す

分類Dev

コールバックの奥深くで関数を呼び出す

分類Dev

JavaScriptのコールバック内でtypescript関数を呼び出す方法

分類Dev

React-コンポーネント関数内で小道具関数を呼び出す

分類Dev

匿名およびコールバック関数で外部関数を呼び出す方法

分類Dev

コールバック関数から他の関数を呼び出す

分類Dev

反応で小道具矢印関数を呼び出す方法

分類Dev

NodeJSの同じ引数でコールバック関数内の親関数を呼び出します

分類Dev

引数を使用してコールバック関数を呼び出す方法

分類Dev

コールバック関数内で継承された関数を呼び出す方法

分類Dev

イベントコールバック関数で最新の小道具を入手する

分類Dev

非同期モジュール内でコールバックなしで関数を呼び出す

分類Dev

ServiceNow:コールバック関数でonSubmitを呼び出すと、無限ループが発生します

分類Dev

Javascript:関数は、これまでに呼び出したすべての関数のすべてのコールバックを呼び出しますか?

分類Dev

呼び出し関数は最後の呼び出しでコールバックを破棄しました

分類Dev

コールバック関数でfineUploaderメソッドを呼び出すことはできません

分類Dev

Node.js:コールバックから関数を再度呼び出す方法

分類Dev

AngularJSはコールバック関数を呼び出します

分類Dev

Nodejsコールバック内でモジュール関数を呼び出す

分類Dev

C#で行うようにJavaでコールバックを使用して関数を呼び出す方法

分類Dev

Javaでパラメータとしてコールバックを取る関数を呼び出す方法

分類Dev

Haskellでコールバックを使用するC関数を呼び出す方法は?

分類Dev

関数を呼び出す前にコールバック関数の引数の数を確認する方法

分類Dev

socket.io匿名コールバック:クラス関数を呼び出すことができません

分類Dev

コールバックはすでに呼び出されました!ループバック、updateAll関数で

分類Dev

コールバックで小道具の値を設定する

分類Dev

C ++で動的に呼び出すコールバック関数のアドレスを取得します

Related 関連記事

  1. 1

    コールバック関数で__doPostBackを呼び出す方法

  2. 2

    bxsliderコールバック内の関数を呼び出す

  3. 3

    コールバックなしでブースト関数を呼び出す

  4. 4

    コールバックの奥深くで関数を呼び出す

  5. 5

    JavaScriptのコールバック内でtypescript関数を呼び出す方法

  6. 6

    React-コンポーネント関数内で小道具関数を呼び出す

  7. 7

    匿名およびコールバック関数で外部関数を呼び出す方法

  8. 8

    コールバック関数から他の関数を呼び出す

  9. 9

    反応で小道具矢印関数を呼び出す方法

  10. 10

    NodeJSの同じ引数でコールバック関数内の親関数を呼び出します

  11. 11

    引数を使用してコールバック関数を呼び出す方法

  12. 12

    コールバック関数内で継承された関数を呼び出す方法

  13. 13

    イベントコールバック関数で最新の小道具を入手する

  14. 14

    非同期モジュール内でコールバックなしで関数を呼び出す

  15. 15

    ServiceNow:コールバック関数でonSubmitを呼び出すと、無限ループが発生します

  16. 16

    Javascript:関数は、これまでに呼び出したすべての関数のすべてのコールバックを呼び出しますか?

  17. 17

    呼び出し関数は最後の呼び出しでコールバックを破棄しました

  18. 18

    コールバック関数でfineUploaderメソッドを呼び出すことはできません

  19. 19

    Node.js:コールバックから関数を再度呼び出す方法

  20. 20

    AngularJSはコールバック関数を呼び出します

  21. 21

    Nodejsコールバック内でモジュール関数を呼び出す

  22. 22

    C#で行うようにJavaでコールバックを使用して関数を呼び出す方法

  23. 23

    Javaでパラメータとしてコールバックを取る関数を呼び出す方法

  24. 24

    Haskellでコールバックを使用するC関数を呼び出す方法は?

  25. 25

    関数を呼び出す前にコールバック関数の引数の数を確認する方法

  26. 26

    socket.io匿名コールバック:クラス関数を呼び出すことができません

  27. 27

    コールバックはすでに呼び出されました!ループバック、updateAll関数で

  28. 28

    コールバックで小道具の値を設定する

  29. 29

    C ++で動的に呼び出すコールバック関数のアドレスを取得します

ホットタグ

アーカイブ