ホームページ  >  に質問  >  本文

関数内で vue コンポーザブル インスタンスにアクセスしますか?

<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粉845862826P粉845862826417日前558

全員に返信(1)返信します

  • P粉258788831

    P粉2587888312023-08-30 00:18:04

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

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

    しかし、.cart 属性で

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

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

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

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

    リーリー リーリー

    返事
    0
  • キャンセル返事