データが変更されても、Emberコンポーネントの計算関数は再実行されません

TDmoneybanks

次のように、計算されたプロパティ内に文字列値を格納しました。

clientId: Ember.computed.oneWay("_clientId")

ここで、_clientIdは、次のようにオブジェクトのプロパティとして定義されます。

export default Ember.service.extend { _clientId: null, clientId: Ember.computed.oneWay("_clientId"), updateId() {this.set("_clientId", "fe48822d-bf50-44a1-9ce0-61b06504d726"); } }

次に、次のような計算プロパティを持つコンポーネントがあります。

chartData: Ember.computed("data", function () {
    const data = this.get("data");

    const clientId = this.get("session").get("clientId");
    console.log(clientId);

    if (data && data.get("left") !== undefined && data.get("right") !== undefined) {
        return data;
    }

    this.set("_chartDisplayData", null);
    return null;
})

updateIdを呼び出したとき、clientIdの値が変更されると、chartData関数が再実行されることを期待していました(clientIdの値が変更されることを確認しました)。ただし、chartData関数が再実行されることはありません。これはなぜですか。

RustyToms

計算されたプロパティにすべての依存関係について伝える必要がありますまず、計算されたプロパティは、どこかで使用されていない場合は実行されません。使用していない場合は、代わりにオブザーバーが必要です。ただし、実際に使用していると仮定すると、計算されたプロパティは、リストされている依存関係の1つが変更された場合にのみ再計算されます。また、オブジェクトを依存関係としてリストした場合、オブジェクトのプロパティの一部のみが変更されても、オブジェクト全体が置き換えられた場合にのみ、オブジェクトは更新されません。これを試して:

chartData: Ember.computed("data.left", "data.right", "session.clientId", function () {
    const data = this.get("data");

    const clientId = this.get("session.clientId");
    console.log(clientId);

    if (data && data.get("left") !== undefined && data.get("right") !== undefined) {
        return data;
    }

    this.set("_chartDisplayData", null);
    return null;
})

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

計算された関数は、あるコンポーネントでは実行されますが、別のコンポーネントでは実行されません

分類Dev

Angular 2:データが別のコンポーネントで変更されても、クラスバインディングは更新されません

分類Dev

角度のあるURLを変更しても、コンポーネントは再作成されません

分類Dev

コンポーネントの入力が変更されても小道具は更新されません

分類Dev

ルートパラメータが変更されても、コンポーネントは新しいデータでリロードされません

分類Dev

プロップデータが変更されても、Vueコンポーネントは更新されたデータを表示しません

分類Dev

useStateフックを使用して小道具が変更されても、コンポーネントは再レンダリングされません

分類Dev

小道具が変更されても子コンポーネントは更新されません

分類Dev

角度 2 サービスのデータを操作しても、2 番目のコンポーネントのデータは変更されません。

分類Dev

配列プロップが変更されても、Reactサブコンポーネントは再レンダリングされません

分類Dev

React-Redux:小道具が変更されてもコンポーネントは再レンダリングされませんでした

分類Dev

URLが変更されても、ルートコンポーネントはレンダリングされません。カスタムwebpack付き

分類Dev

日付コンポーネントは、年の変化に対して計算されません

分類Dev

親がpropを変更しても、子コンポーネントは再レンダリングされません

分類Dev

React JS Higher-Order-コンポーネントは、関数の外部で状態が設定されている場合、関数を実行しません

分類Dev

setInterval関数はAngular6の他のコンポーネントでも実行されています

分類Dev

配列として渡された小道具を変更しても、React機能コンポーネントは再レンダリングされません

分類Dev

フックされた要素が変更されてもコンポーネントは変更されません

分類Dev

React Stateに変更しても、機能コンポーネントの表示は更新されません

分類Dev

データ変数を変更しても、計算されたプロパティは更新されません

分類Dev

要素の値が変更されても、Syncfusionタブコントロールの値は更新されません

分類Dev

コンポーネントは再レンダリングされませんが、reactフックを介してredux状態が変更されました

分類Dev

setプロパティを使用してコンストラクター関数の実行コンテキストで定義された値を設定しても値が変更されない理由がわかりません

分類Dev

React Native:コンポーネントは再レンダリングされますが、小道具は変更されていません

分類Dev

shouldComponentUpdateがfalseに設定されている子コンポーネントは、小道具が変更されても更新されません

分類Dev

親コンポーネントでpropが変更されている場合、子コンポーネントの入力は更新されません

分類Dev

Vueコンポーネントデータから計算された関数

分類Dev

ネストされたWebコンポーネントの `attachedCallback`がappendedで実行されていません

分類Dev

Reactコンポーネントは小道具の変更時に再レンダリングされません

Related 関連記事

  1. 1

    計算された関数は、あるコンポーネントでは実行されますが、別のコンポーネントでは実行されません

  2. 2

    Angular 2:データが別のコンポーネントで変更されても、クラスバインディングは更新されません

  3. 3

    角度のあるURLを変更しても、コンポーネントは再作成されません

  4. 4

    コンポーネントの入力が変更されても小道具は更新されません

  5. 5

    ルートパラメータが変更されても、コンポーネントは新しいデータでリロードされません

  6. 6

    プロップデータが変更されても、Vueコンポーネントは更新されたデータを表示しません

  7. 7

    useStateフックを使用して小道具が変更されても、コンポーネントは再レンダリングされません

  8. 8

    小道具が変更されても子コンポーネントは更新されません

  9. 9

    角度 2 サービスのデータを操作しても、2 番目のコンポーネントのデータは変更されません。

  10. 10

    配列プロップが変更されても、Reactサブコンポーネントは再レンダリングされません

  11. 11

    React-Redux:小道具が変更されてもコンポーネントは再レンダリングされませんでした

  12. 12

    URLが変更されても、ルートコンポーネントはレンダリングされません。カスタムwebpack付き

  13. 13

    日付コンポーネントは、年の変化に対して計算されません

  14. 14

    親がpropを変更しても、子コンポーネントは再レンダリングされません

  15. 15

    React JS Higher-Order-コンポーネントは、関数の外部で状態が設定されている場合、関数を実行しません

  16. 16

    setInterval関数はAngular6の他のコンポーネントでも実行されています

  17. 17

    配列として渡された小道具を変更しても、React機能コンポーネントは再レンダリングされません

  18. 18

    フックされた要素が変更されてもコンポーネントは変更されません

  19. 19

    React Stateに変更しても、機能コンポーネントの表示は更新されません

  20. 20

    データ変数を変更しても、計算されたプロパティは更新されません

  21. 21

    要素の値が変更されても、Syncfusionタブコントロールの値は更新されません

  22. 22

    コンポーネントは再レンダリングされませんが、reactフックを介してredux状態が変更されました

  23. 23

    setプロパティを使用してコンストラクター関数の実行コンテキストで定義された値を設定しても値が変更されない理由がわかりません

  24. 24

    React Native:コンポーネントは再レンダリングされますが、小道具は変更されていません

  25. 25

    shouldComponentUpdateがfalseに設定されている子コンポーネントは、小道具が変更されても更新されません

  26. 26

    親コンポーネントでpropが変更されている場合、子コンポーネントの入力は更新されません

  27. 27

    Vueコンポーネントデータから計算された関数

  28. 28

    ネストされたWebコンポーネントの `attachedCallback`がappendedで実行されていません

  29. 29

    Reactコンポーネントは小道具の変更時に再レンダリングされません

ホットタグ

アーカイブ