問題タブ [computed-properties]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
601 参照

swift - 計算変数を初期化する

新しいクラスを作成します。このクラスには計算変数があります。だから私はこの変数を初期化する方法を探しています:

明らかに、このコード行で Xcode はコンパイル エラーを返します (var は取得専用プロパティであるため)。var を書き込み可能にするために set を使用する必要があると思いますが、get と set がどのように機能するか正確にはわからないため、操作方法がわかりません。

0 投票する
1 に答える
178 参照

vue.js - 計算されたオプションによって作成された v-for 配列が変更された場合、それに応じて DOM が変更されない

最近、vuejs の計算オプションが原因である問題に遭遇しました。

まず、v-for を使用して、computed オプションによって作成される配列 (soloColImgs) をループします。

私のHTML

私のJS

pop()次に、またはなどを使用して配列 (soloColImgs) を変更します。splice()コンソールを見ると、それに応じて配列が変更される可能性がありますが、DOMはまったく変更されません。誰かがこれから私を助けることができれば、それは素晴らしいことです.

0 投票する
3 に答える
15579 参照

vue.js - vuex ストアの更新後に計算値が更新されないのはなぜですか?

解決printerList後に再評価する必要がある計算されたプロパティを取得しましたが、そうではないようです。getPrinters()

ソースはオンラインです: optbox.component.vuevuexoptboxes.service.js

成分

行動

突然変異

質問

printerList計算されたプロパティが再評価されないのはなぜですか(つまり、v-for空です)

0 投票する
1 に答える
2467 参照

javascript - ユーザー入力によるVue JS更新計算プロパティ

私の問題は、計算されたプロパティの値をユーザーの入力に置き換えることです。私のセットアップは次のようなものです:

html

js

簡単なメモ アプリを作成しました。1 つのメモをクリックすると、テキストのテキスト領域と名前の見出し 2 が表示されます。タグ内の名前をクリックする<h2></h2>と、見出し 2 が入力フィールドに置き換えられるため、ユーザーは現在のメモの名前を編集できます。

入力フィールドで名前を編集すると (名前は計算されたプロパティです)、名前が更新されないという事実を除いて、すべてが機能します。2 つ目の問題は、1 つのメモの名前を編集した後に別のメモをクリックすると、新しくクリックしたメモの名前が表示される代わりに、古いメモの名前が入力フィールドに残ることです。

理解を深めるために、次の 2 つの図を追加しました。

入力としての h2名としての名前名前はh2 入力としての名前

私の(おそらく関連する)質問は、入力フィールドで計算されたプロパティを編集し、入力フィールドで名前を編集した後にEnterキーを押さなくても、新しくクリックされたメモの名前を表示するにはどうすればよいですか?

0 投票する
3 に答える
3471 参照

ember.js - コンポーネント内の Ember.js 計算プロパティ vs オブザーバー vs didReceiveAttrs()

ember.js アプリケーションでトップ ナビゲーション バーを作成し、それをコンポーネントに変換して、ユーザーがサインインしたときに簡単な「ようこそ {{currentUser.fullName}}」の紹介を表示できるようにしました。ナビゲーション バーがコンポーネントになる予定ですが、今のところ、これが正しく機能するようにしようとしていることです。また、ember-simple-auth アドオンも使用しており、session.isAuthenticatedこれを実現するために値を使用しています。

もちろん、ユーザーがサインインすると「インデックス」に移行する「ログイン」ルートがあります。session.isAuthenticated何らかの理由で、「インデックス」への移行中に値がすぐにキャッチされないようです。これがなぜなのかはわかりませんが、それは別の問題です。

とにかく、私はこのアプリケーションで多くのコンポーネントを使用しており、これらのコンポーネントのほとんどはセッションから値を取得し、ルートとは無関係にストアを照会して、これらのコンポーネントを複数のルートで使用できるようにしています。ナビも例外ではありません。現在、次の作業コードがあります。

私が読んでいるものはすべてdidReceiveAttrs()、オブザーバーの代わりに使用することを示唆しています。また、計算されたプロパティは通常、オブザーバーよりも使用したいものであると言われています。ただし、次のものがないと何も機能しないようです。

それを計算されたプロパティに変換しようとすると、「インデックス」ルートに既に移行した後にページを更新しない限り、プロパティの変更に対して何もしないようです。this.get('session.isAuthenticated') ロジックでメソッドだけを使用しようとするとdidReceiveAttrs()、ページの更新が必要です。

Ember.computedでは、 and の使用方法について何が理解できませんdidReceiveAttrs()か? 誰かが私に例を挙げてもらえますか? または、私が達成しようとしていることをより効率的に行う方法を教えてください。

更新されたコード:

更新 2 (@AdamCooper と @kumkanillam の助けを借りた最終コード):

したがって、これは最小限のコードであり、オブザーバーと計算されたメソッドを引き続き使用しますが、コンポーネントのライフサイクルは使用しません。だから、私が思いついたのは、オブザーバーを時々使用することがまだ必要だと思います。

0 投票する
1 に答える
189 参照

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

次の Vue コンポーネントとデータがあります。

そして、次のテンプレート:

「小計」の計算方法がわかりません。私がする必要があるのは、計算された関数「subtotal」が各「sales」オブジェクトのすべての価格の合計を返すようにすることです。私は何を間違っていますか?

0 投票する
1 に答える
233 参照

javascript - データが追加されたときにエラーになる Vue 計算関数

ここの私のjsbinでhttp://jsbin.com/fecukitisu/edit?html,js,output。ユーザーが含まれているボタンを介して新しい「販売」を追加するまで、私の合計と税のバインドは機能しています。別のセールが追加されたときに計算関数が NAN を返す理由がわかりません。どんな助けでも大歓迎です!

0 投票する
1 に答える
2158 参照

swift - Swift のゲッターとセッター - 代わりに WillSet と DidSet を使用するのは理にかなっていますか?

プロパティに Get と Set を使用する必要がある理由について調査していました。

その主な理由は3つあることに気づきました

  1. 実際にプロパティを設定する前に何かをしたい/確認したい場合
  2. そこからのみ取得できるプロパティが必要な場合(おそらくセキュリティ上の理由からだと思いますか?)、または異なるアクセスレベルを付与したい場合。
  3. 代替表現を使用してプロパティを公開しながら、プロパティの内部表現を非表示にします。(とにかく Set 関数を使用して間違った場所にアクセスできるので、私にとってはあまり意味がありません)

以下のコードは、Swift でプロパティの Get および Set を実装する方法の例であり、前述の 3 つのポイントを利用しています。

しかし、以下のこの他の例も、前述のポイントを利用していますが、別の計算されたプロパティを使用してプライベート プロパティ値を返す代わりに、willSet および didSet オブザーバーを使用するだけです。

したがって、各実装の利点と欠点を知りたいと思っています。

前もって感謝します