【发布时间】:2018-04-03 17:21:59
【问题描述】:
我将 React-native 和 Expo 用于我的移动客户端。
流程:
- 用户点击以从根视图打开模式
- Modal 具有 Expo 的 Share 和 WebView 调用按钮。
- 当用户点击打开其中任何一个时,什么都没有发生。
- 当用户手动关闭模式时,会突然调用 WebBrowser/Share,并在模式是其子级的根视图上打开。
调用 Share 和 WebBrowser 调用程序的函数都在模式的控制器中。
模态控制器的部分内容:
openBrowser = (url) => {
WebBrowser.openBrowserAsync(url);
}
shareModel = (url) => {
Share.share({
url: url
}) .then(console.log(`Shared ${url}`))
.catch(err => console.log(err))
}
render() {
return (
<Modal
visible={this.props.visible}
animationType={'slide'}
onRequestClose={this.props.onRequestClose}
>
<View style={styles.modalContainer}>
<View style={styles.oneButton}>
<TouchableOpacity style={styles.toolbarButton} onPress={() => this.openBrowser(this.props.model.public_url)}>
<SimpleLineIcons
name='globe'
size={29}
style={{ marginTop: 1 }}
color='#7366E3'
/>
<Text style={{ color: '#7366E3', fontSize: 13, marginTop: 1 }}>View</Text>
</TouchableOpacity>
</View>
</View>
</Modal>
)
}
有什么想法吗?这个确切的代码在过去运行良好,但发生了一些变化。
【问题讨论】:
-
这也适用于纯 JS 的 alert() 函数。警报只会在模式关闭后打开,但控制台会记录好像它是在您按下按钮时运行的一样。
标签: react-native react-navigation expo