TouchableNativeFeedback onPress不起作用

时间:2019-09-14 17:52:17

标签: javascript react-native react-native-android

我目前正面临挑战similar to this,但是该解决方案对我而言不起作用。

我有一个模态,正在其上创建一个按钮以关闭模态。这是一个功能组件,可在modalClosed中获取功能。

<TouchableNativeFeedback onPress={props.modalClosed}>
       <View style={{ backgroundColor: '#5d5d5d', padding: 10 }}>
             <Text style={[globalStyles.text, { textAlign: 'center' }]}>Close!</Text>
       </View>
</TouchableNativeFeedback>

由于某种原因,这没有执行onPress事件。

但是,如果我将其替换为下面的代码,它将起作用。

<Button title="Close" onPress={props.modalClosed} color='#5d5d5d' />

使用TouchableNativeFeedback的类似实现可在另一个屏幕(非模式)上运行。有人可以解释一下是否做错了吗?

示例链接

https://snack.expo.io/HylsYzoIS

2 个答案:

答案 0 :(得分:1)

我有一个类似的问题,这就是我的解决方案。 错误-请勿像这样导入: 从'react-native-gesture-handler'导入{TouchableNativeFeedback};

解决方案: 我从'react-native'导入了TouchableNativeFeedback,如下所示: 从'react-native'导入{TouchableNativeFeedback};

我认为从“ react-native-gesture-handler”导入时,TouchableOpacity和TouchableNativeFeedback不会在Modal组件中触发onPress,只有Button起作用。

希望这会有所帮助

答案 1 :(得分:0)

我不确定您如何在代码中使用状态,但是我相信您可以尝试设置以下状态


    constructor(props) {
        super(props);
        this.state = {
            modalOpen: false
        };
    }

    closeModal = () => {
        this.setState({ modalOpen: false });
    }

    <TouchableNativeFeedback onPress={this.modalClosed} />

或者,您是否尝试使用模式组件?我怀疑它是否可以与TouchableNativeFeedback包装器一起使用

    <Modal 
          animationType="slide"
          transparent={true}
          visible={true}
          onRequestClose={() => {
            Alert.alert('Modal has been closed.');
          }} >

希望有帮助!