我知道如何做,但尝试了这种方式,不确定为什么它不起作用?
drawCard = () => {
const deck = this.state.cards;
deck.shift();
console.log(deck, 'deck'); //this is correctly logging one less everytime
this.setState({cards: deck})
}
cards只是一组对象。
所以尽管函数被调用并且控制台日志也在工作,为什么状态没有更新呢?
(console.log(state.cards.length)始终返回3)
state
。尝试使用const deck = [...this.state.cards];
。 (说明:建议在代码中使用这一行,以避免意外修改状态。此行将创建一个“ deck ”数组,该数组包含与原始“ cards ”数组相同的所有元素,并且可以安全地进行更改而不会影响原始状态。) - Prakash Sharma