React native card (native base) onPress doesn't work

You should wrap your CardItem with TouchableOpacity or any other Touchable item. And give onPress function to that Touchable item.

<TouchableOpacity onPress={() => //your function}
    <CardItem>
    </CardItem>
</TouchableOpacity>

Note: Make sure you use the <TouchableOpacity> component associated with the react-native package rather than the react-native-gesture-handler package. Visual Studio Code editor may auto-import from react-native-gesture-handler which does not work in this particular use case.

Correct Package:

import { TouchableOpacity } from 'react-native';

Incorrect Package:

import { TouchableOpacity } from 'react-native-gesture-handler';

For me i left the button={true} prop off, when i added it works. See example below.

  <CardItem 
       button={true}
       onPress={() => {this.cardSelected(item.name)}}
       style={{paddingTop:0,paddingBottom:0,paddingLeft:0,paddingRight:0}}>
      <Image  source={item.img} style={{flex:1,resizeMode: 'cover',height: 175}} />
      <Text style={styles.cardheading}>{item.name}</Text>
        <Image source={cardline} style={styles.cardline}/>
        <Text style={styles.cardtext}> {item.text}</Text>

      </CardItem>