Я новичок в реакции-родной. Я пытаюсь скрыть панель MaterialBottomTabNavigator, помещенную в StackNavigator.
Файл My App.json
import React, { Component } from 'react';
import { YellowBox, StatusBar, AppRegistry, View, Text, Image, Dimensions } from 'react-native';
import { createStackNavigator } from 'react-navigation';
import { createMaterialBottomTabNavigator } from 'react-navigation-material-bottom-tabs';
import AccountScreen from './Components/AccountScreen';
import CategoryView from './Components/CategoryView';
import ContentDetail from './Components/ContentDetail';
import TrendingList from './Components/TrendingList';
import NotificationScreen from "./Components/NotificationScreen";
import styles from './Styles';
import { Icon } from 'react-native-elements'
class MainActivity extends Component {
constructor(props) {
super(props);
this.state = {
error: null,
isLoaded: false,
categories: [],
contentLoaded: false
};
}
componentDidMount() {
//Fetch some values
}
showDetail(content) {
this.props.navigation.navigate('Detail',
{ content: content }
);
}
setBottombarVisibility(nav) {
this.props.navigation.setParams({tabBar:{visible:nav}}) //This is where I try to hide tabBar
}
render() {
const { error, isLoaded, categories, contentLoaded } = this.state;
let screenWidth = Dimensions.get('window').width;
return (
<View style={styles.MainContainer}>
<Text style={styles.titleBar}>
{'Home'}{'\n'}
</Text>
<CategoryView
showDetail={this.showDetail.bind(this)}
setBottombarVisibility={this.setBottombarVisibility.bind(this)}
categories={categories}></CategoryView>
</View>
);
}
}
ActivityProject = createMaterialBottomTabNavigator(
{
Home: {
screen: MainActivity
},
Account: {
screen: AccountScreen
},
Trending: {
screen: TrendingListTab
},
Notification: {
screen: NotificationScreen
},
}
);
let ContentDetailStack = createStackNavigator(
{
ContentDetail
});
const StackViewNav = createStackNavigator(
{
Home: ActivityProject,
Detail: ContentDetailStack
}
);
export default class App extends React.Component {
render() {
return <StackViewNav />;
}
}
У меня есть ScollableView в CategoryView.js. При прокрутке он должен скрывать панель вкладок MaterialBottomTabNavigator.
В моем CategoryView.js я попробовал
onScroll(event) {
var currentOffset = event.nativeEvent.contentOffset.y;
var direction = currentOffset > this.state.offset ? 'down' : 'up';
this.setState({
time: -1,
offset: currentOffset
});
this.props.setBottombarVisibility(direction === 'down');
}
Функция setBottombarVisibility в MainActivity запущена, но this.props.navigation.setParams ({tabBar: {visible: nav}}), похоже, не работает.