Я добавляю карты динамически в мой функциональный компонент React. Карты хранятся в гос. Я сопоставляю их и даю идентификатор каждому из них. OnClick на эти карты, я получаю их идентификатор успешно. Теперь я хочу, чтобы getElementById изменил цвет карты:
function Clicked(pressedGifId) {
if (pressedGifId === 'correctGif') CorrectMatch();
else WrongMatch();
}
function CorrectMatch(pressedGifId) {
// / THERE I GET Element: null
console.log('Element:', document.getElementById(pressedGifId));
}
function WrongMatch() {
console.log('wrong a match!');
}
export default function GameObject(props) {
const addedToGameGif = [];
const [pressedGifId, gifPressed] = useState(null);
const [photoCards, setPhotoCards] = useState([]);
useEffect(() => {
Clicked(pressedGifId);
}, [pressedGifId]);
// add randomly picked photos to addedToGameGif array
// ...
addedToGameGif.map(gifId =>
photoCards.push(
<Card id={gifId} onClick={() => gifPressed(gifId)}>
text
</Card>,
),
);
return <div>{photoCards}</div>;
}
Я пробовал изучать ссылки, но они только для компонентов класса. Итак, как мне достичь своего элемента по идентификатору в React?