React事件处理函数中访问JSON属性返回undefined问题求助
问题原因
你的代码存在两处明显错误:
- 第一处:
slice()方法的返回值始终是数组类型
你写的const board_card = this.state.cardsOnTable.slice(-1)得到的board_card是包含目标对象的单元素数组,而非对象本身,直接访问数组的value、suit属性自然返回undefined。
修复方案:改为取数组的第一个元素即可,两种写法二选一:// 写法1:slice后取下标0 const board_card = this.state.cardsOnTable.slice(-1)[0] // 写法2:用at方法直接取倒数第一个元素,更直观 const board_card = this.state.cardsOnTable.at(-1) - 第二处:属性名拼写错误
你打印时写的是player_card.suite,但实际你的卡片对象里的花色属性是suit,多写了一个字母e,导致该字段返回undefined。
额外提示
你后续调用this.canBePlayed(board_card, player_card)时,传入的board_card目前是数组类型,如果canBePlayed函数内部是直接访问对象属性的逻辑,这部分也会因为同样的原因异常,修改board_card的取值逻辑后这部分也会同步修复。
内容的提问来源于stack exchange,提问作者Michał Bogusz
相关产品推荐
相关产品推荐

