如果您想了解reactnativetabnavigator的知识,那么本篇文章将是您的不二之选。同时我们将深入剖析javascript–TabNavigator中的ReactNavigation传递道
如果您想了解reactnative tabnavigator的知识,那么本篇文章将是您的不二之选。同时我们将深入剖析javascript – TabNavigator中的React Navigation传递道具、javascript-React-Navigation 3:使用createBottomTabNavigator和createStackNavigator打开模式、React Native BottomTabNavigator导航不起作用、React Native TabNavigator 设置Tab切换的各个方面,并给出实际的案例分析,希望能帮助到您!
本文目录一览:- reactnative tabnavigator
- javascript – TabNavigator中的React Navigation传递道具
- javascript-React-Navigation 3:使用createBottomTabNavigator和createStackNavigator打开模式
- React Native BottomTabNavigator导航不起作用
- React Native TabNavigator 设置Tab切换
reactnative tabnavigator
这种效果相信大家见的很多,那么是怎么实现的呢?使用的是reactNavigation
代码如下
import React,{Component} from 'react'; import { View,Text,Image,ActivityIndicator,StyleSheet,Dimensions,Animated,Easing } from 'react-native'; import { StackNavigator,TabNavigator,} from 'react-navigation' import ShopInfo from './ShopInfo'; import ShopUrl from './ShopUrl'; import ShopEvaluate from './ShopEvaluate'; const {width,height} = Dimensions.get('window'); const tabWidthPadding = (((width)/3)-30)/2; const MainScreen = TabNavigator({ shopInfo:{ screen:ShopInfo,navigationoptions:{ title:'商品',} },shopUrl:{ screen:ShopUrl,navigationoptions:{ title:'详情' } },shopEvaluate:{ screen:ShopEvaluate,navigationoptions:{ title:'评价' } } },{ tabBarOptions:{ activeTintColor:'#000000',inactiveTintColor:'#666666',style:{ backgroundColor:'white',height:50,},indicatorStyle:{ height:3,width:30,backgroundColor:'#fa372d',marginLeft:tabWidthPadding,marginRight:tabWidthPadding,justifyContent:'center' } } }); const Shop = StackNavigator({ mainScreen:{ screen:MainScreen,navigationoptions:{ gesturesEnabled:true,header:null } } }) export default class ShopHomeInfo extends Component{ constructor(props){ super(props) } render(){ const {params} = this.props.navigation.state; return( <View style={styles.container}> <Shop style={{flex:1}} /> </View> ); } } const styles = StyleSheet.create({ container:{ width:width,height:height,})
ShopInfo.js的代码如下
import React,ScrollView,} from 'react-native'; export default class ShopInfo extends Component{ constructor(props){ super(props) this.state={ } } componentDidMount(){ } render(){ return( <View> <Text>商品信息参数是:</Text> </View> ); } }
ShopUrl.js
import React,WebView,} from 'react-native'; export default class ShopUrl extends Component{ render(){ return( <WebView source={{uri:'http://blog.csdn.net/u010648159/article/details/78636281'}} style={{flex:1}} /> ); } }
ShopEvaluate.js
import React,} from 'react-native'; export default class ShopEvaluate extends Component{ render(){ return( <View style={{width:50,height:50}}> <Text>商品评价</Text> </View> ); } }就是这么的简单,如果如果要在导航栏加上左边返回按钮,就比较麻烦了,大家可以想一想啊!!!!
javascript – TabNavigator中的React Navigation传递道具
我有在初始屏幕上从服务器加载的道具.我想将它们传递给其他选项卡屏幕.但是,我没有在网上找到任何例子.我知道screenProps,但不知道如何设置它.我尝试过的所有方法都导致了错误.
const EProj = TabNavigator({
Home: { screen: HomeScreen },
Map: { screen: MapG },
Login: { screen: Login },
Profile: { screen: Profile },
}, {
tabBarPosition: 'bottom',
animationEnabled: true,
tabBarOptions: {
activeTintColor: '#1abc9c',
},
});
这是我的屏幕设置.我应该在哪里放置screenProps?
<EProj
screenProps={cats}
/>
如何设置它的任何好例子都会有所帮助.提前致谢.
HomeScreen设置:
class HomeScreen extends React.Component {
static navigationoptions = {
tabBarLabel: 'Home',
};
...
componentwillMount(){
console.log("Starting to load assets from server!");
this.onLoadCats(); /*starts asset loading*/
}
render() {
return (
<View style={styles.container}>
<Text>Welcome to alpha 1.17 This is hard system test.</Text>
<AssetsLoad catsL={this.state.catsL} />
</View>
);
}
}
解决方法:
你可以做的是创建一个可以返回导航的高阶组件,在该组件的componentDidMount中,你可以加载数据并通过screenProps传递它.
例
const EProj = TabNavigator({
Home: { screen: HomeScreen },
Map: { screen: MapG },
Login: { screen: Login },
Profile: { screen: Profile },
}, {
tabBarPosition: 'bottom',
animationEnabled: true,
tabBarOptions: {
activeTintColor: '#1abc9c',
},
});
class MainNavigation extends React.Component {
constructor(props) {
super(props);
this.state = {cats: []};
}
componentDidMount() {
this.onLoadCats().then((cats) => this.setState({ cats: cats }));
}
render() {
return(<EProj screenProps={{ cats: this.state.cats}} />
}
}
// Now you can do in your screens
console.log(this.props.screenProps.cats);
/* This is next line is wrong, please check update above */
/* console.log(this.props.navigation.state.params.cats); */
javascript-React-Navigation 3:使用createBottomTabNavigator和createStackNavigator打开模式
我知道以前曾问过这个问题,但仅适用于旧版本的反应导航.从那以后,一些事情发生了变化. createBottomTabNavigator使创建底部导航器的速度大大提高,并且功能jumpToIndex()不再存在.
我的问题是如何创建类似于Instagram的底部选项卡,其中第一,第二,第四和第五个导航按钮的行为与通常的选项卡导航器相同,而中间按钮(screen3)将打开模态screen3Modal.
我已经在react-navigation 3.x.x中使用createBottomTabNavigator和createStackNavigator对其进行了尝试.
import React,{ Component,} from 'react';
import { createBottomTabNavigator,createStackNavigator,createAppContainer,} from 'react-navigation';
import { Screen1,Screen2,Screen3,Screen4,Screen5 } from './screens';
const TabNavigator = createBottomTabNavigator({
screen1: { screen: Screen1,},screen2: { screen: Screen2,screen3: {
screen: () => null,navigationoptions: () => ({
tabBarOnPress: () => this.props.navigation.navigate('screen3Modal')
})
},screen4: { screen: Screen4,screen5: { screen: Screen5,});
const StackNavigator = createStackNavigator({
Home: { screen: TabNavigator },screen3Modal: { screen: Screen3,{
initialRouteName: 'Home',});
const StackNavigatorContainer = createAppContainer(StackNavigator);
export default class App extends Component {
render() {
return <StackNavigatorContainer />;
}
}
此代码创建选项卡导航和模式导航.可以从另一个屏幕打开模态,但是在选项卡导航器中无法使用.我得到未定义的错误消息不是对象(正在评估“ _this.props.navigation”)
import React,screen3: { screen: () => null,//this.props.navigation.navigate('screen3Modal')
screen4: { screen: Screen4,{
initialRouteName: 'screen3Modal',});
const StackNavigatorContainer = createAppContainer(StackNavigator);
export default class App extends Component {
render() {
return <StackNavigatorContainer />;
}
}
React Native BottomTabNavigator导航不起作用
您正在尝试访问导航,该导航作为一种道具传递给MenuFlatList组件,您应该在下面进行操作
<TouchableWithoutFeedback onPress={() => {
this.props.navigation.navigate('WebViewImprint');
}}>
导航中的任何屏幕组件都将收到一个“导航”道具,可用于导航到其他屏幕。
React Native TabNavigator 设置Tab切换
主要代码如下:
const resetActionTab = NavigationActions.navigate({routeName: 'Tab',action: NavigationActions.navigate({ routeName: 'Home'}) }); this.props.navigation.dispatch(resetActionTab);
我们今天的关于reactnative tabnavigator的分享已经告一段落,感谢您的关注,如果您想了解更多关于javascript – TabNavigator中的React Navigation传递道具、javascript-React-Navigation 3:使用createBottomTabNavigator和createStackNavigator打开模式、React Native BottomTabNavigator导航不起作用、React Native TabNavigator 设置Tab切换的相关信息,请在本站查询。
本文标签: