如何在react-native中实现点击图片的Like Unlike功能?

问题描述 投票:1回答:1

当我要点击图片时,只有一次图片被改变,点击后我无法改变图片,所以我想知道如何在react-native中实现这个功能。

所以我想知道如何在react-native中实现like unlike这个功能,我是react-native的新手,所以请帮助我如何实现这个功能。

enter image description here

下面是一些代码,便于理解

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> 
react-native react-native-android
1个回答
2
投票

试着像这样,喜欢的是 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> 
© www.soinside.com 2019 - 2024. All rights reserved.