配列でv-modelを使用しているときに、vue.jsから未定義エラーの読み取り不能プロパティを取得する

Justin808

v-model配列アイテムのプロパティにしようとしています。"[Vue warn]: Error in render function: 'TypeError: Cannot read property 'viewFood' of undefined'コンソールに表示されるページと空白のページをロードすると。

これはvue.js2.xで行われます。

https://codepen.io/jzaun/pen/YxYyJN/

html

<div id="ai-config">
  <div class="info">
    <div class="row">
      <h1>Resource Points</h1>
    </div>
    <div class="row">
      <label>Total:</label>
      <div class="value">
        {{maxResourcePoints}}
      </div>
    </div>
    <div class="row">
      <label>Remaining:</label>
      <div class="value">
        {{maxResourcePoints - usedResourcePoints}}
      </div>
    </div>
  </div>
  <div>
    <table>
      <tr>
        <td></td>
        <td v-for="(option, idx) in options">
          {{option.title}}
        </td>
      </tr>
      <tr v-for="n in directions">
        <td>Direction {{n}}</td>
        <td v-for="option in options">
          <input type="checkbox", v-model="selected[n][option.key]" />
        </td>
      </tr>
    </table>
  </div>
</div>

javascript

new Vue ({
  el: '#ai-config',

  data: {
    maxResourcePoints: 10,
    usedResourcePoints: 0,
    selected: [],

    directions: 8,
    options: [{
      title: 'Food',
      key: 'viewFood',
      cost: 1
    }, {
      title: 'Water',
      key: 'viewWater',
      cost: 1
    }, {
      title: 'Own',
      key: 'viewOwn',
      cost: 1
    }, {
      title: 'Other',
      key: 'viewOther',
      cost: 1
    }]
  },

  methods: {
  },

  created: function () {
    this.selected = [];
    for(i=0; i< 8; i++) {
      this.selected.push({});
    }
  }
});
バート

2つの主要な問題があります。

まず、Vueのデータに追加されたオブジェクトにプロパティを動的に追加した場合Vueはそれを検出できませんこれを行うとき:

v-model="selected[n][option.key]"

createハンドラーで初期化した空のオブジェクトにプロパティを追加していますこれを修正するには、実際のプロパティで初期化するだけです(または、ここではオプションではないように見える$ setを使用します)。

this.selected.push({viewFood: false, viewOwn: false, viewWater: false, viewOther: false});

2番目(および質問で引用したエラーの原因)、範囲を使用する場合v-for、値は1から始まります。

v-model="selected[n][option.key]"

ご存知のように、Javascript配列はゼロベースであるため、エラーが1つずれています。そのはず

v-model="selected[n - 1][option.key]"

元のペンにもマイナーなHTMLエラーがありました

<input type="checkbox", v-model="selected[n][option.key]" />

カンマを削除する必要がある場所。

これが更新されペンです。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

node.jsで未定義の読み取りプロパティエラーを取得しています

分類Dev

配列が未定義です:エラーTypeError:未定義のプロパティ 'push'を読み取れません

分類Dev

状態の代わりに小道具を使用しているにもかかわらず、React-reduxで未定義のエラーのプロパティ「マップ」を読み取ることができません

分類Dev

未定義からプロパティ「0」を読み取ることができません。エラーGoogleApps Script

分類Dev

私はエラーを取得していますDiscord.JSの使用中に未定義のプロパティ 'user'を読み取ることができません

分類Dev

エラーの取得TypeError:React / Reduxアクションを使用して未定義のプロパティ 'id'を読み取ることができません

分類Dev

setTimeoutでラップすると、エラー「未定義のプロパティを読み取れません」

分類Dev

エラー:未定義のプロパティを読み取ることができません(Vue)

分類Dev

このエラーを取得します:未定義のプロパティ「0」を読み取ることができません

分類Dev

ブラウザーからangular2でチェックされた値を取得する方法(元の例外に直面:未定義のエラーのプロパティ 'push'を読み取ることができません)

分類Dev

エラー:オブジェクトに格納されている空の配列で.pushを使用すると、未定義のプロパティプッシュを読み取ることができません

分類Dev

エラー:サブスクライブから戻ると、未定義のプロパティ ''を読み取ることができません

分類Dev

「未定義のプロパティ 'init' を読み取れません」というエラーを修正するにはどうすればよいですか?

分類Dev

長さに問題があります。エラーTypeError:未定義のプロパティ 'length'を読み取ることができません

分類Dev

refから値を取得します-常に示します未定義のプロパティ 'value'を読み取ることができません

分類Dev

Angular Material sidenavのエラー:未定義のプロパティを読み取ることができません

分類Dev

Vuejsは未定義のエラーのプロパティ 'use'を読み取ることができません

分類Dev

「未定義のプロパティ「マップ」を読み取れません」というエラーが発生するのはなぜですか?

分類Dev

javascriptエラーで未定義のプロパティ 'preventDefault'を読み取ることができません

分類Dev

エラーTypeError:角度で未定義のプロパティ 'closeRow'を読み取ることができません

分類Dev

エラーTypeError:未定義のプロパティ 'length'を読み取ることができません

分類Dev

エラーTypeError:未定義のプロパティ 'get'を読み取ることができません

分類Dev

エラーTypeError:未定義のプロパティ 'nativeElement'を読み取ることができません

分類Dev

角度4エラーTypeError:未定義のプロパティ 'dirty'を読み取ることができません

分類Dev

エラーTypeError:未定義のプロパティ 'ngInjectableDef'を読み取ることができません

分類Dev

エラーTypeError:未定義のプロパティ 'firstName'を読み取ることができません

分類Dev

エラーTypeError:未定義のプロパティ 'open'を読み取ることができません

分類Dev

エラーTypeError:未定義のプロパティ 'openDialogTEST'を読み取ることができません

分類Dev

エラーTypeError:未定義のプロパティ 'formData'を読み取ることができません

Related 関連記事

  1. 1

    node.jsで未定義の読み取りプロパティエラーを取得しています

  2. 2

    配列が未定義です:エラーTypeError:未定義のプロパティ 'push'を読み取れません

  3. 3

    状態の代わりに小道具を使用しているにもかかわらず、React-reduxで未定義のエラーのプロパティ「マップ」を読み取ることができません

  4. 4

    未定義からプロパティ「0」を読み取ることができません。エラーGoogleApps Script

  5. 5

    私はエラーを取得していますDiscord.JSの使用中に未定義のプロパティ 'user'を読み取ることができません

  6. 6

    エラーの取得TypeError:React / Reduxアクションを使用して未定義のプロパティ 'id'を読み取ることができません

  7. 7

    setTimeoutでラップすると、エラー「未定義のプロパティを読み取れません」

  8. 8

    エラー:未定義のプロパティを読み取ることができません(Vue)

  9. 9

    このエラーを取得します:未定義のプロパティ「0」を読み取ることができません

  10. 10

    ブラウザーからangular2でチェックされた値を取得する方法(元の例外に直面:未定義のエラーのプロパティ 'push'を読み取ることができません)

  11. 11

    エラー:オブジェクトに格納されている空の配列で.pushを使用すると、未定義のプロパティプッシュを読み取ることができません

  12. 12

    エラー:サブスクライブから戻ると、未定義のプロパティ ''を読み取ることができません

  13. 13

    「未定義のプロパティ 'init' を読み取れません」というエラーを修正するにはどうすればよいですか?

  14. 14

    長さに問題があります。エラーTypeError:未定義のプロパティ 'length'を読み取ることができません

  15. 15

    refから値を取得します-常に示します未定義のプロパティ 'value'を読み取ることができません

  16. 16

    Angular Material sidenavのエラー:未定義のプロパティを読み取ることができません

  17. 17

    Vuejsは未定義のエラーのプロパティ 'use'を読み取ることができません

  18. 18

    「未定義のプロパティ「マップ」を読み取れません」というエラーが発生するのはなぜですか?

  19. 19

    javascriptエラーで未定義のプロパティ 'preventDefault'を読み取ることができません

  20. 20

    エラーTypeError:角度で未定義のプロパティ 'closeRow'を読み取ることができません

  21. 21

    エラーTypeError:未定義のプロパティ 'length'を読み取ることができません

  22. 22

    エラーTypeError:未定義のプロパティ 'get'を読み取ることができません

  23. 23

    エラーTypeError:未定義のプロパティ 'nativeElement'を読み取ることができません

  24. 24

    角度4エラーTypeError:未定義のプロパティ 'dirty'を読み取ることができません

  25. 25

    エラーTypeError:未定義のプロパティ 'ngInjectableDef'を読み取ることができません

  26. 26

    エラーTypeError:未定義のプロパティ 'firstName'を読み取ることができません

  27. 27

    エラーTypeError:未定義のプロパティ 'open'を読み取ることができません

  28. 28

    エラーTypeError:未定義のプロパティ 'openDialogTEST'を読み取ることができません

  29. 29

    エラーTypeError:未定義のプロパティ 'formData'を読み取ることができません

ホットタグ

アーカイブ