styled components :hover with react-native and react-native-web

26.6k views Asked by At

I'm using styled-components in React-Native App. Let's say I have link component:

import styled from 'styled-components/native';

const Link = styled.Text`
  color: 'red';

  &:hover {
    color: 'blue';
  }
`

After that, I 'compile' my React-Native code with react-native-web.

All is great expect that hover is not working. (Text color remains red on hover.)

My guess is that https://github.com/styled-components/css-to-react-native is removing the hover definition.

Any idea how to fix this?

4

There are 4 answers

0
Sharcoux On

You can use rn-css that works like styled-components but with better support for css in React-Native.

Just replace import styled from 'styled-components/native'; with import styled from 'rn-css'; and your code will work.

0
anonkey On

You can use onMouseEnter and onMouseLeave like in the refs section of styled-components. Advanced guide.

1
Gabriel Arantes On

Try use TouchableHighlight.

You can define the backgroundcolor when your button it's pressed or not!

Follow the guide on https://facebook.github.io/react-native/docs/touchablehighlight

1
Johnny M. Salas On

For native mobile development hover doesn't have a definition, that's because there is no cursor on the screen like there is on desktop devices. As React Native for web simulates how RN works, the :hover selector loose its sense