【发布时间】:2018-06-08 15:23:20
【问题描述】:
我正在学习 React 并尝试创建一个记忆游戏应用程序,在我的应用程序的卡片组件中,如果我点击一张卡片,我想将该卡片推送到一个空数组。但是如果我单击第二张卡片,数组不会保存第一张卡片,或者它不会正确保存,因为每次单击新卡片时道具的值都会改变。我检查了一些类似的问题,但他们发布的问题不同。
import React from 'react';
import '../memoryGameStyle/card.css';
class Card extends React.Component{
constructor(props){
super(props);
this.state={card:'' }
}
onCardClick=()=>{
const array=[]
const newCard={...this.props.card,show:true}
this.setState({card:newCard})
}
render(){...}
}
export default Card
我正在尝试将新卡推送到 onCardClick 中的阵列。我有两个道具,一个会显示我点击的卡片,另一个会显示所有卡片的数组。我尝试使用 filter()、push()、spread 运算符,到目前为止都不起作用,我一定做错了什么。请帮忙,谢谢
【问题讨论】:
-
您正在覆盖您所在州的 card 变量。它将如何保存
-
道具不应该改变。 this.props.card 包含什么?
-
@Sujit.Warrier,卡片道具包含卡片的颜色、显示和匹配状态以及 ID。颜色是在另一个组件中随机生成的,我将使用 show 和 match 来检查卡片显示是显示还是隐藏
-
@Sujit.Warrier 我有另一个包含所有卡片的 props.cards,我可以使用 this.setState({card:{...newCard,show:true}}) 更改卡片状态。但问题还是一样
标签: arrays reactjs add react-props