親コンポーネントのデータを更新すると、私の小道具が更新されない理由がわかりません。私はフィドルでそれを試してみましたが、それはhttps://jsfiddle.net/f3w69rr6/1/で動作しますが、私のアプリでは動作しません。更新された小道具でVue計算されたプロパティが更新されない
<PlayerCards :gameState="gameState" :hand="gameState.playerHand" />
子:
親:経由子にデータを入れて
methods: {
addToHand(index) {
let card = this.gameState.playerDeck.splice(index, 1)
if (this.gameState.playerHand.length < 12)
{
// put card into hand
this.$set(this.gameState, 'playerHand', [...this.gameState.playerHand, card])
// this.gameState.playerHand.push(card)
}
// otherwise discard card
},
retrieveDeck() {
let array = []
for (let i = 0; i < 20; i++)
{
array.push(this.src + "?text=card"+i)
}
this.$set(this.gameState, 'playerDeck', array)
},
},
mounted() {
this.retrieveDeck()
for (let i = 0; i < 5; i++)
{
this.addToHand(1)
}
},
export default {
name: 'PlayerCards',
props: ["gameState", "hand"],
data() {
return {
}
},
computed: {
rows() {
let cards = this.gameState.playerHand
let max = 6;
if (cards.length <= max)
return [cards]
var mid = Math.ceil(cards.length/2);
let return_value = [cards.slice(0, mid), cards.slice(mid)]
return return_value
}
}
}
が、行の内容は空です。
アップデート(更新フィドル):
あなたがあなたのcamelCase
小道具にkebab-case
同等のものを使用する必要があり、文字列のテンプレートを使用していない場合は、問題が計算
https://jsfiddle.net/f3w69rr6/1/
ええと、私はあなたが小道具の種類を修正する必要があると思います。それが何かに影響するかどうかわかりませんが、試してみてください:https://vuejs.org/v2/guide/components.html#Prop-Validation – pirs
'this.gameState'のためにマウントされた値を取得しますか?子コンポーネントでは? – C2486
@ user2486ブラウザで 'console.log(this.gameState)'を実行すると内容があることがわかりますが、 'Object.assign({}、this.gameState)'を別のものに実行するとそれを記録すると、それは空になります(初期化時に期待どおり)。問題は、私のアプリでは反応していないが、私のフィドルでうまく動作しているようだ。必要に応じてさらにコードを投稿することができます。何らかの理由で –