react-native - 导航到另一个屏幕时关闭模式

标签 react-native react-navigation react-modal

我有一个应用程序 主屏幕 , 在这个屏幕中我渲染了一个 莫代尔打开于 button press ,内Modal我有一个按钮应该将我导航到另一个屏幕,它可以正确导航,但是当我导航到另一个屏幕时,模态不会消失,我该如何隐藏它?

添加代码进行演示

首页:

import React, { Component } from 'react';
import Modal from './Modal';

class Home extends Component {
  state = {
    isModalVisible: false
  };

  toggleModal = () =>
    this.setState({ isModalVisible: !this.state.isModalVisible });

  render() {
    const { navigate } = this.props.navigation;

    <Modal
    visible={this.state.isModalVisible}
    navigation={this.props.navigation}
    />
    );
  }
}

export default Home;

模态:
import React, { Component } from "react";
import Modal from "react-native-modal";

class Modal extends Component {

  render() {
    const { navigate } = this.props.navigation;

    return (
        <Modal
        isVisible={this.props.visible}>
          <Button onPress={() => {navigate('Main')}}>
            >Button</Text>
          </Button>
        </Modal>
    );
  }
}

export default Modal;

最佳答案

理想情况下,您应该等待 setState在回调中完成,然后导航到屏幕,因为方法是 异步 如果 navigate 可能会破坏状态在 setState 之前被调用已经完成。

还有家长 应该控制的状态 child .


onNavigate = () => {
  this.setState({isModalVisible: false}, () => this.props.navigation.navigate('Main')
}

<Modal
    visible={this.state.isModalVisible}
    onNavigate={this.onNavigate}
 />

模态
<Modal
  isVisible={this.props.visible}>
    <Button onPress={this.props.onNavigate}>
      <Text>Button</Text>
    </Button>
</Modal>

关于react-native - 导航到另一个屏幕时关闭模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52391480/

相关文章:

react-native - 如果使用react-native-vector-icons,则为react-navigation抽屉事件图标着色

javascript - 刷新页面时 react 自定义模态显示模态内容几毫秒

reactjs - React Native 在模态打开/关闭时重新呈现整个组件

javascript - react native : Why does a valid Javascript regex pattern not work on Android?

react-native - 重定向不适用于 componentWillMount()react-native-router-flux

react-native - 在导航 goBack 上发送 Prop

TypeScript - 从 DefinelyTyped 导入一些使用声明文件(类型)的 npm 包时出现问题

javascript - 在渲染方法中访问此变量 [REACT NATIVE]

javascript - 我如何使用 React Native 将对象保存在移动存储中

javascript - "multipart != application/json"在 android 上获取 post 错误(react-native)