関数内で vue コンポーザブル インスタンスにアクセスしますか?
P粉845862826
P粉845862826 2023-08-29 08:59:18
0
1
596
<p>アプリケーション全体で何度も再利用したい、単純な vue コンポーズ可能な関数があるとします。この場合、これにはリアクティブ プロパティ (products、製品のリストを含む配列) と、新しい要素を配列にプッシュするメソッド "addProduct" があります。 </p> <pre class="brush:php;toolbar:false;">エクスポート関数 useCart(){ const 積 = ref([]) const addProduct() =>{ products.push({アイテム: "ベースボール キャップ"、数量: 1}) } 戻る { 製品、 製品を追加 } }</pre> <p>うまくいきます。ただし、行がプロパティ「cart」を介して親「cart」にアクセスできるように、コンポーザブル カートのインスタンスを各行に渡したいと考えています。 </p> <p>次のことが機能することを願っています。 「this」は、関数が呼び出されるオブジェクト (ショッピング カート インスタンス) を参照する必要があると思います。 </p> <pre class="brush:php;toolbar:false;">エクスポート関数 useCart(){ const 積 = ref([]) const addProduct() =>{ //これはカート コンポーザブルのインスタンスである必要がありますか? products.push({商品名: 「ベースボールキャップ」、数量: 1、カート: この}) } 戻る { 製品、 製品を追加 } }</pre> <p>しかし、コンポーザブルを使用してコンポーネントでテストすると、「this」の値が未定義になります: </p> <pre class="brush:php;toolbar:false;">const testCart = useCart testCart.addProduct() <p>このコンテキストでは「this」が定義されていないのはなぜですか?また、コンポーザブル メソッド内のコンポーザブル インスタンスにアクセスするにはどうすればよいですか? </p>
P粉845862826
P粉845862826

全員に返信(1)
P粉258788831

正しく行えば、うまくいきます。

ただし、lambda にはコンテキストがなく、this = windowcode># # であるため、lambda の代わりに functions() を使用する必要があります。 # リーリー

しかし、.cart 属性で

this コンテキストを使用するのに問題があります。

cart.products.value[0].cart.products に似ています。それはうまくいきません。

設計を再考することをお勧めします。そんなことはしません。

遊び場をチェックしてください。 2回目は窓口です。

リーリー リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート