検索

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

vue.js - パブリックイベントバスを使用したvue.js

vue フレームワークの使用方法を練習し、todo デモを作成するときに、input 要素 (new-input コンポーネント) と ul 要素と li 要素 ( todo-itemsと todo-item コンポーネント) は、2 つの並列コンポーネントとして記述されます。次に、入力コンポーネントに追加するテキストを入力し、パブリック イベント バスを使用して更新イベントをトリガーし、todo-items コンポーネントのライフサイクルでフック関数を作成して、更新イベントをリッスンしてコンポーネント内のデータを変更すると、問題が発生します。エラー メッセージは、コンポーネントの todos 配列が未定義であることを示します

#以下のコードを投稿してください

リーリー

何らかの理由で、todo-items の deleteItem メソッドも todos 配列を操作できます。

黄舟黄舟2834日前976

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

  • typecho

    typecho2017-06-12 09:27:35

    モバイルでの回答
    問題は主にbus.$emitで発生します。バスはVueの新しいインスタンスであり、これにはtodoがありません。 内部

    が作成されました:

    const that = this
    その後、この内部バスは that に変更されます

    携帯電話での回答、詳細なコードは書きません、ご理解ください

    返事
    0
  • 世界只因有你

    世界只因有你2017-06-12 09:27:35

    バス インスタンスによって監視されているコールバック関数のこれは、期待した vue インスタンスを指していません。解決策は上記のとおりです。

    返事
    0
  • キャンセル返事