useState钩子在setState之后继续返回initailState

时间:2020-11-01 18:54:21

标签: arrays reactjs setstate use-state

我有一个问题,我有一个空数组作为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方法在放置事件上触发。

0 个答案:

没有答案