реагировать-навигация TabNavigator не визуализировать следующий экран, - PullRequest
0 голосов
/ 22 октября 2018

Сначала я создал логин, затем регистрацию, затем экран HomeView (TabBar), в App.js я должен создать StackNavigator.

import HomeView from './AllViewController/HomeView';
import Login from './AllViewController/Login';
import Registration from './AllViewController/Registration';
import AlbumDetail from './AllViewController/AlbumDetail';
const RootStack = StackNavigator({

  Home: {screen: HomeView, navigationOptions: { header: null}},
  Login: {screen: Login, navigationOptions: { header: null}},
  Registration: {screen: Registration, navigationOptions: { header: null}},
  AlbumDetail: {screen: AlbumDetail, navigationOptions: { header: null}},

Главный экран, который я создал TabNavigator Там у меня есть четыре экрана Альбом, Корзина, Библиотека, Экран истории.Проблема с экрана альбома. Я пытаюсь открыть новый экран, он не работает
Вот мой код Начального экрана

import objAlbum from '../AllViewController/Album'
import objCart from '../AllViewController/Cart'
import objLibrary from '../AllViewController/Library'
import objHistory from '../AllViewController/History'
import {TabNavigator} from 'react-navigation'

const RootStack = TabNavigator({

    ClassA: { screen: objAlbum},
    ClassB: { screen: objLibrary },
    ClassC: { screen: objCart},
    ClassD: { screen: objHistory },

  })
  export default class HomeView extends Component {
    render() {
      return <RootStack />;
  }
  }

С экрана альбома, который я пытаюсь открыть AlbumDetail Экран не работает Пожалуйста, помогитемне.

export default class Album extends Component<Props> {


    constructor(props) {
        super(props)

        this.state = {
            textInputData: "",
            textInputpassword: ""
          }


        this.click_Next = this.click_Next.bind(this);
    }


    click_Next = () => {
        this.props.navigation.navigate('AlbumDetail')
    }

1 Ответ

0 голосов
/ 22 октября 2018

Кажется, что ваши два навигатора не связаны между собой.

Сначала вы должны использовать SwitchNavigator (вместо stackNavigator) для вашего экрана входа в систему.Это лучше для пользовательского опыта и для вашего кода позже, когда вы вернетесь к своему первому состоянию.

Тогда вы можете сделать это:

import objAlbum from '../AllViewController/Album'
import objCart from '../AllViewController/Cart'
import objLibrary from '../AllViewController/Library'
import objHistory from '../AllViewController/History'
import {TabNavigator, StackNavigator} from 'react-navigation'
import Login from './AllViewController/Login';
import Registration from './AllViewController/Registration';
import AlbumDetail from './AllViewController/AlbumDetail';

const HomeView = TabNavigator({

 ClassA: { screen: objAlbum},
 ClassB: { screen: objLibrary },
 ClassC: { screen: objCart},
 ClassD: { screen: objHistory },

})

const RootStack = StackNavigator({

Home: {screen: HomeView, navigationOptions: { header: null}},
Login: {screen: Login, navigationOptions: { header: null}},
Registration: {screen: Registration, navigationOptions: { header: null}},
AlbumDetail: {screen: AlbumDetail, navigationOptions: { header: null}},
...