我有一个问题,我有一个空数组作为const的初始值。我想在某些情况发生后将booleons连接到它上(cardImgIndex === imgIndex)。问题是,当我要复制先前的状态时,它始终是初始状态([]),但我不知道为什么。下面的代码示例:
const [correctPlacementMap, setCorrectPlacementMap] = useState<any>([])
const handleDrop = (e: React.DragEvent<HTMLDivElement>) => {
const {draggedCardID, cardImgIndex} = JSON.parse(e.dataTransfer.getData('card'));
if (isEmpty) {
if (cardImgIndex === imgIndex) {
setCorrectPlacementMap((prevState: boolean[]) => [...prevState, true]);
e.target.appendChild(document.getElementById(draggedCardID))
} else {
setCounter((prevState: number) => prevState + 10);
e.target.appendChild(document.getElementById(draggedCardID))
}
}
};
它正确设置了数组(在第一个放置为[true]之后,但在另一个放置之后prevState为[]。
handleDrop方法在放置事件上触发。