React Native Swipeable(Swipe to delete)not close

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

我正在使用来自React-Native-Gesture-Handler的Swipeable合并要在我的页面上删除的滑动。当我按Delete键时,联系人将被删除,但可滑动式保持打开状态。

我希望它在按下后关闭,但是我似乎不知道该怎么做。

这是我的代码:

const RightActions = (progress, dragX) => { 
return (
<TouchableOpacity onPress={()=>{DeleteContact(i)}}>
  <View style={[ContactsStyles.rightAction]}>
    <Text style={ContactsStyles.actionText}>Delete</Text>
  </View>
</TouchableOpacity>
) 
}

这是我可滑动的位置:

<Swipeable renderRightActions={RightActions} >

     <View style={ContactsStyles.UserContainer}>

         <Text numberOfLines={1} style={[Fonts.Name]}> {obj.firstname} {obj.lastname} </Text>


         {/* Message/Call Container */}
          <View style={ContactsStyles.ImageCont}>
                    {/* Message */}
                    <TouchableOpacity onPress={()  => Communications.text(obj.phone, 'Hey ' + obj.firstname + ', im in need of a Ryde. Are you able to pick me up? This is my current location: ' + location)} >
                      <View style={ContactsStyles.ImageBox}>
                        <Image style={ContactsStyles.Image} source={require('../../assets/icons/message.png')} />
                      </View>
                    </TouchableOpacity>

                    {/* Call */}
                    <TouchableOpacity onPress = {() => Communications.phonecall( obj.phone , true)}>
                      <View style={ContactsStyles.ImageBox}>
                        <Image style={ContactsStyles.Image} source={require('../../assets/icons/phone.png')} />
                      </View>
                    </TouchableOpacity>
                  </View>
                  {/* End of Message/Call Container */}
      </View>
</Swipeable>

Swipeable button doesnt disappear after on press

ios react-native swipe react-native-gesture-handler
1个回答
0
投票

您需要使用带有close方法的引用。

首先定义一个参考

const swipeableRef = useRef(null);

然后将其分配给Swipeable

  <Swipeable
    ref={swipeableRef}
    renderLeftActions={renderLeftActions}
    onSwipeableLeftOpen={() => handleComplete(item)}
  >

然后只需调用close方法

const closeSwipeable = () => {
  swipeableRef.current.close();
}
© www.soinside.com 2019 - 2024. All rights reserved.