Как я могу реализовать Like В отличие от функциональности по щелчку изображения в реагирующем? - PullRequest
2 голосов
/ 01 мая 2020

Когда я собираюсь щелкнуть по изображению, то после щелчка на нем изменяется только одно изображение, я не могу изменить изображение.

Поэтому я хочу знать, как я могу добиться этой функциональности, как в отличие от реактивный-родной. Я новичок в реактивной-родной, поэтому, пожалуйста, помогите мне, как я могу достичь этой функциональности. Спасибо в продвинутом. некоторый код для легкого для понимания

selectLike = (type) => {
        if(type==1){
            this.setState({like:'Unlike',likeType:1})
        }
    }

 <TouchableOpacity onPress={() => { this.selectLike(1) }}>

                                       {this.state.likeType===1 ? 
                                       <View>
                                           <Image source={require('../../Images/redheart.png')} style={styles.imagetriple} />
                                        <Text style={styles.texttriple}>{this.state.like}</Text>
                                       </View>
                                       :
                                       <View>
                                           <Image source={require('../../Images/heart.png')} style={styles.imagetriple} />
                                        <Text style={styles.texttriple}>{this.state.like}</Text>
                                       </View>
                                       }

                                    </TouchableOpacity> 

1 Ответ

2 голосов
/ 01 мая 2020

Попробуй вот так, понравилось это true or false

state = {
    like: 'Unlike',
    liked: false
}
    selectLike = () => {
    this.setState(prevstate => {
        return {
        ...prevstate, 
        like: (prevstate.liked ? 'Unlike' : 'like'), liked: !prevstate.liked
    }
})
}

}

<TouchableOpacity onPress={this.selectLike}>
    {this.state.liked ?
        <View>
            <Image source={
                require('../../Images/redheart.png')
            } style={
                    styles.imagetriple
                }
            /> <Text style={
                styles.texttriple
            } > {this.state.like} </Text> </View> :
        <View>
            <Image source={
                    require('../../Images/heart.png')
                } style={
                    styles.imagetriple
                }
            /> <Text style={
                    styles.texttriple
                }> {
                    this.state.like
                } </Text> </View>
    }

    </TouchableOpacity> 
...