React native React Native中的模态视图
我是一个新的本地人,我试图以一种方式表达自己的观点。我有一个表视图,当单击其中一行时,我希望视图以模式显示 这就是我现在实施过渡的方式:React native React Native中的模态视图,react-native,React Native,我是一个新的本地人,我试图以一种方式表达自己的观点。我有一个表视图,当单击其中一行时,我希望视图以模式显示 这就是我现在实施过渡的方式: renderbooks(books) { return ( <TouchableHighlight onPress={() => this.showbooksDetail(books)} underlayColor='#dddddd'> <View>
renderbooks(books) {
return (
<TouchableHighlight onPress={() => this.showbooksDetail(books)} underlayColor='#dddddd'>
<View>
<View style={styles.container}>
<View style={styles.rightContainer}>
<Text style={styles.title}>{books.title}</Text>
</View>
</View>
<View style={styles.separator} />
</View>
</TouchableHighlight>
);
}
showbooksDetail(books){
this.props.navigator.push({
title:books.title,
component: ProductView,
passProps:{books}
});
}
renderbooks(书籍){
返回(
this.showbooksDetail(books)}underlayColor='#dddddd'>
{books.title}
);
}
展示书籍详情(书籍){
这个是.props.navigator.push({
书名:书籍,
组件:ProductView,
通行证:{books}
});
}
我如何修改它,以便视图可以以模式显示
仅供参考:我已经研究了多个问题和示例项目,例如:
renderBooks(books) {
...
<Modal
animated={true}
transparent={true}
visible={!!this.state.selectedBook}>
<Text>{this.state.selectedBook.title}</Text>
</Modal>
...
}
showDetail(book) {
this.setState({
selectedBook: book,
});
}
renderBooks(书籍){
...
{this.state.selectedBook.title}
...
}
展示细节(书籍){
这是我的国家({
精选图书:图书,
});
}
我正在使用react native modalbox。你可以在顶部、中间、底部等处显示模态,这真是太棒了。请检查一下下面的链接:
样本:
import React from 'react';
import Modal from 'react-native-modalbox';
import Button from 'react-native-button';
import {
AppRegistry,
Text,
StyleSheet,
ScrollView,
View,
Dimensions
} from 'react-native';
class Example extends React.Component {
constructor() {
super();
this.state = {
isOpen: false,
isDisabled: false,
swipeToClose: true,
sliderValue: 0.3
};
}
onClose() {
console.log('Modal just closed');
}
onOpen() {
console.log('Modal just openned');
}
onClosingState(state) {
console.log('the open/close of the swipeToClose just changed');
}
render() {
return (
<View style={styles.wrapper}>
<Button onPress={() => this.refs.modal1.open()} style={styles.btn}>Basic modal</Button>
<Button onPress={() => this.refs.modal2.open()} style={styles.btn}>Position top</Button>
<Button onPress={() => this.refs.modal3.open()} style={styles.btn}>Position centered + backdrop + disable</Button>
<Button onPress={() => this.refs.modal4.open()} style={styles.btn}>Position bottom + backdrop + slider</Button>
<Modal
style={[styles.modal, styles.modal1]}
ref={"modal1"}
swipeToClose={this.state.swipeToClose}
onClosed={this.onClose}
onOpened={this.onOpen}
onClosingState={this.onClosingState}>
<Text style={styles.text}>Basic modal</Text>
<Button onPress={() => this.setState({swipeToClose: !this.state.swipeToClose})} style={styles.btn}>Disable swipeToClose({this.state.swipeToClose ? "true" : "false"})</Button>
</Modal>
<Modal style={[styles.modal, styles.modal2]} backdrop={false} position={"top"} ref={"modal2"}>
<Text style={[styles.text, {color: "white"}]}>Modal on top</Text>
</Modal>
<Modal style={[styles.modal, styles.modal3]} position={"center"} ref={"modal3"} isDisabled={this.state.isDisabled}>
<Text style={styles.text}>Modal centered</Text>
<Button onPress={() => this.setState({isDisabled: !this.state.isDisabled})} style={styles.btn}>Disable ({this.state.isDisabled ? "true" : "false"})</Button>
</Modal>
<Modal style={[styles.modal, styles.modal4]} position={"bottom"} ref={"modal4"}>
<Text style={styles.text}>Modal on bottom with backdrop</Text>
</Modal>
</View>
);
}
}
const styles = StyleSheet.create({
modal: {
justifyContent: 'center',
alignItems: 'center'
},
modal2: {
height: 230,
backgroundColor: "#3B5998"
},
modal3: {
height: 300,
width: 300
},
modal4: {
height: 300
},
wrapper: {
paddingTop: 50,
flex: 1
},
});
AppRegistry.registerComponent('Example', () => Example);
从“React”导入React;
从“react native modalbox”导入模态;
从“反应本机按钮”导入按钮;
进口{
评估学,
文本,
样式表,
滚动视图,
看法
尺寸
}从“反应本机”;
类示例扩展了React.Component{
构造函数(){
超级();
此.state={
伊索彭:错,
isDisabled:错误,
swipeToClose:没错,
滑块值:0.3
};
}
onClose(){
log('Modal just closed');
}
onOpen(){
log('Modal just opened');
}
onClosingState(状态){
log(“刚刚更改了swipeToClose的打开/关闭”);
}
render(){
返回(
this.refs.modal1.open()}style={styles.btn}>Basic model
this.refs.modal2.open()}style={styles.btn}>Position top
this.refs.modal3.open()}style={styles.btn}>positioncentered+background+disable
this.refs.modal4.open()}style={styles.btn}>位置底部+背景+滑块
基本模态
this.setState({swipeToClose:!this.state.swipeToClose})style={styles.btn}>禁用swipeToClose({this.state.swipeToClose?:“true”:“false”})
顶部的模态
模态中心
this.setState({isDisabled:!this.state.isDisabled})style={styles.btn}>Disable({this.state.isDisabled?“true”):“false”})
底部有背景的模态
);
}
}
const styles=StyleSheet.create({
模态:{
为内容辩护:“中心”,
对齐项目:“中心”
},
模式2:{
身高:230,
背景颜色:“3B5998”
},
模式3:{
身高:300,
宽度:300
},
模式4:{
身高:300
},
包装器:{
paddingTop:50,
弹性:1
},
});
AppRegistry.registerComponent('示例',()=>示例);
检查此简单而功能强大的小型库react native modal animated,只需通过添加react native modal animated或npm安装react native modal animated安装即可
import { AnimatedModal } from 'react-native-modal-animated
<View style={styles.container}>
<TouchableOpacity
onPress={() => {
this.setState({ modalVisible: true });
alert
}}
style={styles.button}
>
<Text style={styles.buttonText}>Show Modal</Text>
</TouchableOpacity>
<AnimatedModal
visible={this.state.modalVisible}
onBackdropPress={() => {
this.setState({ modalVisible: false });
}}
animationType="vertical"
duration={600}
>
{/*Any child can be used here */}
<View style={styles.modalCard}>
<Text>I'm AnimatedModal</Text>
<Text style={{fontWeight: 'bold', marginTop: 10}}>vertical</Text>
</View>
</AnimatedModal>
</View>
);
}
}
从'react native model animated'导入{animatedmodel}
{
this.setState({modalVisible:true});
警觉的
}}
style={style.button}
>
显示模态
{
this.setState({modalVisible:false});
}}
animationType=“垂直”
持续时间={600}
>
{/*此处可以使用任何子级*/}
我是动画模特
垂直的
);
}
}