Я хотел добиться чего-то похожего, но обнаружил, что стилизованные компоненты не могут сделать это явно.Я должен был сделать это таким образом, то есть создать два компонента, один из которых скрыт, а когда родительский элемент наведен, я показываю его и скрываю другой.Кажется, хак, но лучше, чем использование e.setAttribute, я думаю.
const GoogleLoginButton = styled.img.attrs(
props => ({'src': props.img})
)`
display: inline;
width: 190px;
height: 45px;
&:hover {
cursor: pointer;
}
`;
const GoogleLoginButtonHover = styled.img.attrs(
props => ({'src': props.img})
)`
display: none;
width: 190px;
height: 45px;
&:hover {
cursor: pointer;
}
`;
const GoogleLoginButtonParent = styled.div`
&:hover ${GoogleLoginButtonHover} {
display: inline;
}
&:hover ${GoogleLoginButton} {
display: none;
}
`;
В своем рендере вы используете его так:
<GoogleLoginButtonParent>
<GoogleLoginButton
img = {props.img}
/>
<GoogleLoginButtonHover
img = {props.imgHover}
/>
</GoogleLoginButtonParent>