У меня есть Flatlist
, отображаемое со следующими ListItemSwipeable
, и они содержат renderRightActions
функцию RightActionsButton
. Смахивание работает и кнопка появляется. Тем не менее, я не могу добиться того, чтобы кнопка исчезла, когда другой элемент проведен или нажата кнопка.
const RightActionsButton = ({ progress, dragX, onPress }) => {
const scale = dragX.interpolate({
inputRange: [-100, 0],
outputRange: [1, 0],
extrapolate: "clamp"
});
return (
<TouchableOpacity onPress={onPress}>
<View>
<Animated.Text style={{ transform: [{ scale }] }}>
Button!
</Animated.Text>
</View>
</TouchableOpacity>
);
};
const ListItemSwipeable = ({data, onAction}) => {
return (
<Swipeable
renderRightActions={(progress, dragX) => (
<RightActionsButton progress={progress} dragX={dragX} onPress={onAction} />
)}
>
<View>
<Text>{data}</Text>
</View>
</Swipeable>
)
}
};
Есть некоторые подсказки здесь , однако он основан на классах, и он понадобится мне для компонента на основе функций.