Скрытие материалаBottomTabNavigator bar, сложенного внутри StackNavigator - PullRequest
0 голосов
/ 30 августа 2018

Я новичок в реакции-родной. Я пытаюсь скрыть панель 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}}), похоже, не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...