【发布时间】:2019-06-03 07:21:49
【问题描述】:
我正在创建一个在不同屏幕中使用 Modal 的应用程序。我为所有 Modal 创建了一个通用组件。我在其中传递 jsx 并根据全局变量使其可见。但是当我打开一个模态然后关闭它并移动到下一个屏幕然后在下一个屏幕中打开另一个模态时问题就来了,前一个屏幕的模态也在后台。
我试图根据两个变量(如全局变量和另一个局部变量)使其可见,但模态仍然没有关闭。
这是我常用的模态组件
render() {
let { GlobalStore, renderContent = () => {}, modalStyle, modalHeight = '50%' } = this.props;
return (
<Modal
isVisible={GlobalStore.showModal}
backdropColor={Constants.COLORS.BLACK}
backdropOpacity={0.4}
onBackdropPress={() => GlobalStore.toggleModal(false)}
style={[styles.bottomModal,modalStyle]}>
<View style={[styles.modalContent,{height: modalHeight}]}>
{renderContent}
</View>
</Modal>
)
}
}
并在诸如
之类的屏幕上使用它 {this.openModal?
<CustomModal visible={GlobalStore.showModal&&this.openModal}
modalHeight = {this.modalHeight} renderContent =
{this.ModalContent()}/>
:
null
}
我只想关闭之前在后台出现的模式。我不想为所有模式创建不同的文件。任何形式的帮助将不胜感激。谢谢。
【问题讨论】:
标签: javascript react-native jsx mobx-react