React native 如何在用户单击本机纸张中的屏幕时消除Snackbar

React native 如何在用户单击本机纸张中的屏幕时消除Snackbar,react-native,react-native-paper,React Native,React Native Paper,我正在用react native和react native paper开发移动应用程序。 我有一个问题,Snackbar组件提供了本地文件。 当用户触摸任何地方时,如何隐藏snackbar 这是GIF,当snackbar位于屏幕底部时,我尝试点击了许多。我想在点击屏幕时将其隐藏 这是我的密码 import React, { Component } from 'react'; import { Text, View, StyleSheet } from 'react-native'; import

我正在用react native和react native paper开发移动应用程序。 我有一个问题,Snackbar组件提供了本地文件。 当用户触摸任何地方时,如何隐藏snackbar

这是GIF,当snackbar位于屏幕底部时,我尝试点击了许多。我想在点击屏幕时将其隐藏

这是我的密码

import React, { Component } from 'react';
import { Text, View, StyleSheet } from 'react-native';
import { Provider, Snackbar } from 'react-native-paper';

export default class MainScreen extends Component {
  constructor(props) {
    super(props);
    this.state = {
      visible: true,
    };
    this.onDismissSnack = this.onDismissSnack.bind(this);
  }

  onDismissSnack() {
    this.setState({
      visible: false
    })
  }

  render() {
    return (
      <Provider>
        <Snackbar
          visible={this.state.visible}
          onDismiss={() => this.onDismissSnack()}>
          <Text>Hello Snackbar</Text>
        </Snackbar>
      </Provider>
    )
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    flexDirection: 'row',
    justifyContent: 'center',
    alignItems: 'center'
  }
});
根据这个例子,你有一个名为action with的道具,它可以让你添加一个你想要的标签,在这个例子中,它是discover

检查我创建的零食:

从“React”导入React,{useState}; 从“react native”导入{视图、文本、按钮}; 从“react native paper”导入{Snackbar}; 导出默认值=>{ const[visible,setVisible]=useStatefalse; 回来 setVisibletrue}/> setVisiblefalse} 行动={{ 标签:“解雇”, onPress:=>setVisiblefalse, }}> 你好,斯纳克巴 ; }; 在问题的作者请求后更新

要能够解除该模式,可以将该组件放置在模式中,如下所示:

从“React”导入React,{useState}; 进口{ 看法 文本 按钮 情态动词 样式表, 可触摸且无反馈, }从“反应本机”; 从“react native paper”导入{Snackbar}; 导出默认值=>{ const[visible,setVisible]=useStatetrue; 回来 setVisibletrue}/> setVisiblefalse}> setVisiblefalse}> 你好,斯纳克巴 ; }; const styles=StyleSheet.create{ 容器:{ 弹性:1, 为内容辩护:“中心”, }, 模态:{ 宽度:“100%”, 高度:“100%”, 位置:'相对', }, };
在我看来,解决方法是,您应该使用“驳回”按钮,这要简单得多。

谢谢您的评论,但在代码中,您需要按snackbar上的“驳回”标签来隐藏它,对吗?当用户点击屏幕上的任何地方时,我想隐藏它。@SatoruKikuchi你可以把它放在模态中,然后关闭模态谢谢,你刚才提到的模态是什么?我应该使用哪种模式?给我一分钟,我会给你举个例子