Вы можете обернуть компоненты Image в один из своих, чтобы вы могли контролировать и добавлять состояния. Или, может быть, другим способом было бы иметь массив в вашем родительском компоненте, например:
state: {
images:[{id: "image1", isHovered: false},
{id:"image2", isHovered: false}]
}
Таким образом, вы можете иметь свои идентификаторы в компонентах:
<Image id={this.state.images[0].id} ...rest />
затем handleHover:
handleHover(e) => {
const images = [...this.state.images]; //copy your array
const index = images.findIndex(el => (el.id === e.target.id));
images[index].isHovered = !images[index].isHovered;
this.setState({images});
}
Однако это слишком сложно. Вы должны обернуть его внутри другого компонента и управлять состоянием оттуда.