您的位置:首页 > Web前端 > React

React Native Router Navigations(3)

2019-07-15 16:30 1366 查看

about.js
这是about page的组件结构。 这里的内容取自“原生基地”
从 ' react ' 导入 React,{Component} ; 从 ' react-native '
导入 {Text} ; 从 ' native-base ' 导入 {Content} ; export default class 关于 extends Component { constructor(){ } render (){ return ( <Content> </ Content> ); } } 模块。 export = 关于 ;

news.js
按照以下代码创建新闻组件。
React Native Router Navigations

安装路由器包
按照此命令安装路由包。 确保重新启动react本机服务器。
$ npm install react-native-router-flux --save

index.ios.js
导入和新闻页面到indes.ios.js。 还从react-native-router-flux导入路由器。 在路由器内部提到您正在使用的所有组件。 这里appBody指的是feed组件,你可以将appBody重命名为feed。
从 ' react ' 导入 React,{Component} ; 从 ' react-native '
导入 {AppRegistry,View,Text} ; 从 ' native-base ' 导入 {Container,StyleProvider,Header,Left,Right,Icon,Button,Body} ; 从 './src/themes/components' 导入 getTheme ; 从 './src/themes/variables/nineLessons' 导入 nineLessons ; 从 ' ./src/components/appHeader ' 导入 AppHeader ; 从 ' 导入 AppFooter '

./src/components/appFooter '; 从 ' ./src/components/appBody '
导入 appBody ; 从 ' ./src/components/pages/news ' 导入 新闻 ; 从 ' ./src/components/pages/about ' 导入 关于 ; 从 ' react-native-router-flux ' 导入 {Router,Scene} ; export default class ReactNativeBlogApp extends Component { render(){ return( <StyleProvider style = {getTheme(nineLessons)}> <Container> <Router>

<Scene key =“root”>  <Scene key =“feed”component = {  appBody  } title =“Feed”/>  <Scene key =“about”component = {  About  } title =“About”/>  <Scene key = “news”component = {  News  } title =“News”/>  </ Scene>  </ Router>            <AppFooter />          </ Container>        </ StyleProvider>      );    }  } AppRegistry.registerComponent( 'ReactNativeBlogApp',()=> ReactNativeBlogApp);

appFooter.js
在appFooter.js中,将所有组件包含在应用程序页脚部分的选项卡按钮中。
从 ' react ' 导入 React,{Component} ; 从 ' react-native '
导入 {Image,StyleSheet} ; 从 ' native-base ' 导入 {Footer,FooterTab,Icon,Button,Text} ; 从 ' react-native-router-flux ' 导入 {Actions} ; export default class AppFooter extends Component { constructor (){ } render (){ return ( <Footer> <FooterTab> <Button active onPress

= { Actions .feed}> <Icon name =“ios-egg”/>
<Text> Feed </ Text>
</ Button>
<Button onPress = { Actions .news}> <Icon name =“paper”/>
<文本>新闻</ Text>
</ Button>
<按钮 onPress = { Actions .about}> <Icon name =“contact”/>
<Text>关于</ Text>
</ Button>
</ FooterTab>
</ Footer>
);
}
}

模块。 export = AppFooter ;

多个操作
还包括appFooter.js中的以下代码。 当按下或激活任何标签按钮时,相应地调用该方法。
tabAction (tab){
if(tab ===' feed '){
Actions。 feed ();
} else if(tab ===' news '){
Actions。 新闻 ();
} else {
动作。 约 ();
}
}

函数调用
下面是通过按页脚下面的3个选项卡中的任何一个来调用tabAction方法所包含的行。
<按钮激活 onPress = {()=> {this。 tabAction (' feed ')}}>
<Icon name =“ios-egg”/>
<Text> Feed </ Text>
</ Button>

使用“活动”选项卡
在构造函数方法中包含此代码,以激活您按下的选项卡。
constructor (){
super ();
这个。 state = {
activeTabName:' feed '
};
}

绑定状态值
下面的代码是触发我们选择的选项卡操作。
<Button active = {(this.state.activeTabName ===“feed”)? true:“”}
onPress = {()=> {this。 tabAction (' feed ')}}>
<Icon name =“ios-egg”/>
<Text> Feed </ Text>
</ Button>

最终代码
这是使用react native导航到不同页面的最终代码。
从 ' react ' 导入 React,{Component} ; 从 ' react-native '
导入 {Image,StyleSheet} ; 从 ' native-base ' 导入 {Footer,FooterTab,Icon,Button,Text} ; 从 ' react-native-router-flux ' 导入 {Actions} ; export default class AppFooter extends Component { constructor (){ super (); 这个。 state = { activeTabName: 'feed' }; }

tabAction (tab){
this。 setState ({activeTabName:tab});
if(tab ===' feed '){
Actions。 feed ();
} else if(tab ===' news '){
Actions。 新闻 ();
} else {
动作。 约 ();
}
}

渲染(){
回报(
<页脚>
<FooterTab>
<按钮
。活性= {(此 状态 .activeTabName === “进料”)成立:? “”}
onPress = {()=> {此。 tabAction ( '喂')}}>
<图标名称= “IOS-蛋”/>
<文本>订阅</文本>
</按钮>
<按钮
活性= {(此。 状态 .activeTabName === “新闻”)? true:“”}
onPress = {()=> {this。 tabAction ( '新闻')}}>
<图标名称= “文件”/>
<文本>新闻</文本>
</按钮>
<按钮
激活= {(这一点。 状态 .activeTabName === “约”)? true:“”}
onPress = {()=> {this。 tabAction ('about')}}>
<

</ FooterTab>
</ Footer>
);

}
}

模块。 export = AppFooter;

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: