今天迭代版本围绕这个Modal遇到了一些问题,可是一个用法简单到不能再简单的Modal组件会有什么问题呢?
是,错误的产生没有任何报错,连警告都没有,无从查起,就是导航出现了问题,卡死在当前界面,杀死程序之后还是能重新reload,那究竟这错误是如何产生的呢?
我在通过导航进入界面的时候会根据props的一个status来决定Modal的Visible
<AlertComponent
visible={diet[dayType]['status'] === 3 && this.state.modalVisible}
title={`您当天的膳食信息审核未通过${diet[dayType]['describe'] ? ',审核备注' + diet[dayType]['describe'] : ''},是否重新上传`}
confirmTitle='确定'
cancleTitle='取消'
confirmFunction={() => {
this.setState({ modalVisible: false })
deleteDayRecord(dayType)
}}
cancleFunction={() => { this.setState({ modalVisible: false }); navigation.goBack() }}
/>
AlertComponent是我基于Modal封装的一个组件,就是因为进入界面弹出了Modal,所以出现了导航问题,而且异常只发生在Android端,我做了一个这样的处理
componentDidMount () {
this.setState({ modalVisible: true })
}
就是当界面渲染完毕之后我再控制Visible的显示
总结一下,应该是Modal的渲染对界面其他局部的渲染造成了影响