В реакции родного у меня есть кнопка, которая при нажатии в моде открывает. В модале у меня есть ручки View с Panresponder, которые позволяют перетаскивать прямоугольник вверх и вниз внутри модала.
Это работает нормально, но мне нужно сделать дополнительное касание, когда модал открылся, чтобы представление Panresponder могло уловить касание и начать перетаскивание. Есть ли способ передать сенсорное событие модальному или иметь представление Panresponder в модальном датчике касанием, пока палец находится на сцене?
Пример кода:
class Parent extends Component {
state = {
modalVisible: false
};
render() {
<View>
{/* When this is pressed... */}
<TouchableOpacity onPressIn={() => this.setState({ modalVisible: true })}>
<Text>Open & start dragging</Text>
</TouchableOpacity>
{/* Is there a way to capture the touch event right away? */}
<DragModal visible={this.state.modalVisible} />
</View>;
}
}
class DragModal extends Component {
translateY = new Animated.Value(0);
panresponder = PanResponder.create({
// Ask to be the responder:
onStartShouldSetPanResponder: (evt, gestureState) => true,
onPanResponderMove: Animated.event([
null,
{
moveY: this.y
}
])
// ...etc
});
render() {
return (
<Modal visible={this.props.visible}>
<View {...this.panresponder.panHandlers} style={styles.container}>
<View
style={{
...styles.dragHandle,
transform: [{ translateY: this.translateY }]
}}
>
<Text>Draghandle</Text>
</View>
</View>
</Modal>
);
}
}