反应本机 – React Native Navigator
发布时间:2020-12-15 20:52:45 所属栏目:百科 来源:网络整理
导读:如何使用React Native中的Navigator将数据从sceneA传递给sceneB? 我用这个去现场B: this.props.navigator.push({ id: "MainPage",name: 'mainPage'}); 您需要在导航器上设置passProps属性.最近有一些关于堆栈溢出的例子,特别是 here和 here. Navigator ini
|
如何使用React Native中的Navigator将数据从sceneA传递给sceneB?
我用这个去现场B: this.props.navigator.push({
id: "MainPage",name: 'mainPage'
});
您需要在导航器上设置passProps属性.最近有一些关于堆栈溢出的例子,特别是
here和
here.
<Navigator
initialRoute={{name: 'Main',component: Main,index: 0}}
renderScene={(route,navigator) => {
return React.createElement(<YourComponent />,{ ...this.props,...route.passProps,navigator,route } );
}} />
要么 <Navigator
initialRoute={{name: 'Main',navigator) => {
<route.component {...route.passProps} navigator={navigator} route={route} />
}
}
/>
如果您正在寻找最基本的设置只是为了了解功能,我已经设置了一个项目here,您可以参考,粘贴下面的代码. 'use strict';
var React = require('react-native');
var {
AppRegistry,StyleSheet,Text,View,Navigator,Image,TouchableHighlight,TouchableOpacity
} = React;
class Two extends React.Component {
render(){
return(
<View style={{marginTop:100}}>
<Text style={{fontSize:20}}>Hello From second component</Text>
<Text>id: {this.props.id}</Text>
<Text>name: {this.props.name}</Text>
<Text>name: {this.props.myVar}</Text>
</View>
)
}
}
class Main extends React.Component {
gotoNext(myVar) {
this.props.navigator.push({
component: Two,passProps: {
id: 'page_user_infos',name: 'page_user_infos',myVar: myVar,}
})
}
render() {
return(
<View style={{flex: 4,flexDirection: 'column',marginTop:100}}>
<TouchableHighlight style={{ height:40,borderWidth:1,marginBottom:10,backgroundColor: '#ddd'}} name='Pole' onPress={ () => this.gotoNext('This is a property that is being passed') }>
<Text style={{textAlign:'center'}}>Go to next page</Text>
</TouchableHighlight>
</View>
)
}
}
class App extends React.Component {
render() {
return (
<Navigator
style={{flex:1}}
initialRoute={{name: 'Main',index: 0}}
renderScene={(route,navigator) => {
if (route.component) {
return React.createElement(route.component,route } );
}
}}
navigationBar={
<Navigator.NavigationBar routeMapper={NavigationBarRouteMapper} />
} />
);
}
}
var NavigationBarRouteMapper = {
LeftButton(route,index,navState) {
if(index > 0) {
return (
<TouchableHighlight style={{marginTop: 10}} onPress={() => {
if (index > 0) {
navigator.pop();
}
}}>
<Text>Back</Text>
</TouchableHighlight>
)} else {
return null}
},RightButton(route,navState) {
return null;
},Title(route,navState) {
return null
}
};
var styles = StyleSheet.create({
});
AppRegistry.registerComponent('App',() => App);
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
