私は自分のコンポーネントの1つに情報を渡すのに苦労しています。VueJS 2コンポーネントは、式を使用するときに矛盾を生じます。
私は、データのリストを繰り返し処理し、リストの最後の項目についてブール値をtrueに設定しようとしています。私は面白い不一致に遭遇しています。v-bind:isLast="index + 1 == tiers.length"
を次のコードで使用するとfalseに評価されますが、v-bind:test="{index: index, tiersLength: tiers.length, bool: index + 1 == tiers.length}"
を実行してブール値を期待するのではなくその情報を格納するオブジェクトを使用すると、ブールキーはオブジェクト。
これはなぜですか?また、これは計算されたプロパティとしてより良いでしょうか?私は本当に層のリストからコンポーネントにもっと多くの情報を渡したいとは思っていません。私は、そのコンポーネントが層のリストに全く気づかないように感じるべきです。
<section id="classification-metadata-editor">
<metadata-button-row
v-for="(row,index) in tiers"
v-bind:row="row"
v-bind:index="index"
v-bind:isLast="index + 1 == tiers.length"
v-bind:test="{index: index, tiersLength: tiers.length, bool: index + 1 == tiers.length}">
</metadata-button-row>
</section>
isLast: false
test: {index: 0, tiersLength: 1, bool: true}
私は小道具を設定すると意図したかもしれないものよりも少しをしていますが、私はそれを行うにはどのように他はかなりわからないと感じて、これが意図されている場合はかなりよく分かりません。私は似たような質問をしてきましたが、検索のための適切な用語がわからないので、これが他のところでカバーされていれば謝ります。
ありがとうございました!
これは何時間もの楽しいトラブルシューティングを経た後、isLastという変数が呼び出されたようです問題提起その変数呼び出しをバインドとコンポーネントの両方のテストに変更すると、ブール値は期待通りに評価され始めました。面白い。 大文字が私のコードを捨てているようです。理由は分かりません。同じコードだが、変数名をisLast、lastInArray、arrayLastに置き換えると、すべてfalseに戻りますが、is_last、last_in_arrayという名前のテストはすべてtrueに評価されます。 –