如何在本机反应中使用双击?我希望如果用户双击图像而不是 setliked 状态触发器,那么我该如何在 rn 中做到这一点?就像 Instagram 帖子一样,他们在 rn 中是否有任何预构建包可以让我这样做?我正在使用 rn 0.70.5 就像我们有 onpress 一样,或者有其他方法可以做到这一点?
import { StyleSheet, Text, View, Image } from 'react-native'
import React, { useState } from 'react'
import { FontAwesome } from '@expo/vector-icons';
import { icons1 } from '../CommonCss/PageCss';
import { Feather } from '@expo/vector-icons';
import styles from './styles';
const PostCard = (
{
key,
username,
postimg,
profileimg,
likes,
comments,
}
) => {
const [isliked, setIsliked] = useState(false)
const [showcomments, setShowcomments] = useState(false)
return (
<View style={styles.container}>
<View style={styles.content}>
<Image source={{ uri: profileimg }} style={styles.profileImage} />
<Text style={styles.Username}>{username}</Text>
</View>
<Image source={{ uri: postimg }} style={styles.posts} /> // This is the post img
<View style={styles.section}>
{
isliked ?
<View style={styles.likesection}>
<FontAwesome name="heart" size={24} color="black" style={styles.iconliked} onPress={() => {
setIsliked(false)
}} />
<Text style={styles.liked}>{likes.length + 1}</Text>
</View>
:
<View style={styles.likesection}>
<Feather name="heart" size={24} color="black" style={icons1} onPress={() => {
setIsliked(true)
}} />
<Text style={styles.notliked}>{likes.length}</Text>
</View>
}
<View style={styles.commentsection}>
<FontAwesome name="comment" size={24} color="black" style={icons1}
onPress={() => {
setShowcomments(!showcomments)
}}
/>
</View>
</View>
{
showcomments == true &&
<View style={styles.section2}>
{
comments.map((item, index) => {
return (
<View style={styles.section2s1} key={item.id}>
<Text style={styles.commentUser}>{item.username}</Text>
<Text style={styles.commentText}>{item.comments}</Text>
</View>
)
})
}
</View>
}
</View>
)
}
export default PostCard
你可能会使用这个库react-native-double-tap
通过 npm 安装:
npm install --save react-native-double-tap
这是您可以操作或应用于您的建议的代码
export default class App extends React.Component {
render() {
return (
<View style={styles.container}>
<DoubleClick
singleTap={() => {
console.log("single tap");
}}
doubleTap={() => {
console.log("double tap");
}}
delay={200}
>
<Text>Open up App.js to start working on your app!</Text>
<Text>Changes you make will automatically reload.</Text>
<Text>Shake your phone to open the developer menu.</Text>
</DoubleClick>
</View>
);
}
}
顺便说一句,这是一个链接文档 https://www.npmjs.com/package/react-native-double-tap
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)