навигация. навигация не работает - PullRequest
0 голосов
/ 18 сентября 2018

Я создаю экран страницы фильтра. На этом экране, когда я заполняю все данные, по которым я хотел отфильтровать данные, я нажимаю кнопку «Сохранить», и это перенаправляет меня на домашнюю страницу, где будут мои новые отфильтрованные данные.Отображается. Моя домашняя страница уже показывает общие данные, но если я хочу просмотреть данные фильтра, я отфильтрую эти данные с экрана фильтра.
Но здесь у меня проблема в том, что я не могу перенаправить на домашнюю страницу.код, который я использую для перенаправления, одинаков для всего моего приложения, которое работает отлично. У меня проблема только с перенаправлением на домашнюю страницу, и в консоли не отображается ошибка, но выводит сообщение, которое я написал в своей функции.Вместо того, чтобы ничего не делать.

import NavigationService from '../../components/NavigationService';
    onSaveClicked() {

        console.log('Filter is in progress');
        const { navigation } = this.props;
        navigation.navigate('home');
        const { userprofile } = this.props;
        const  { type } = userprofile;
        NavigationService.navigate('HomeStackScreen1', {type:type});


      }
  renderButton() {
    return (
      <Button
        style={{ alignItems: 'center' }}
        onPress={this.onSaveClicked.bind(this)}
      >
        Filter
      </Button>
    );
  }

navigationService.js

    import { NavigationActions,navigation } from 'react-navigation';

let _navigator;

function setTopLevelNavigator(navigatorRef) {
  _navigator = navigatorRef;
}

function navigate(routeName, params) {
  _navigator.dispatch(
    NavigationActions.navigate({
      routeName,
      params
    })
  );
}

function getParams(param){
  console.log("param: "+param);
  _navigator.dispatch(
    console.log("param: "+param),
    navigation.getParam(param)
  );
}


export default { setTopLevelNavigator, navigate, getParams };

Стек навигации:

    const HomeStack = createStackNavigator(
  {
    HomeStackScreen1: {
      screen: DrawerNavigation,
      navigationOptions: ({ navigation }) => ({
        title: 'Action',
        headerLeft: (
          <DrawerButton name="navicon" style={styles.Headercss} navigation={navigation} />
        ),
        headerRight: (
          <SearchButton style={styles.Headercss} navigation={navigation} />
        ),
        //headerStyle: { paddingRight: 5, paddingLeft: 5 },
        headerTitleStyle: { color: 'rgb(234, 94, 32)' }

      })
    },
    Project: {
      screen: ProjectTab,
      navigationOptions: () => ({
        title: '  Create New Project',
        headerTintColor: 'rgb(234, 94, 32)', 
      })
    },
    Notification: {
      screen: NotificationScreen
    },
    Filters: {
     screen: FilterScreen,
     navigationOptions: () => ({
      title: 'Filter',
      headerTintColor: 'rgb(234, 94, 32)', 
    })
    },
    UpdateProfile: {
      screen:UserProfileScreen,
      navigationOptions: () => ({
        title: 'Profile',
        headerTintColor: 'rgb(234, 94, 32)', 
      })
    },
    ViewActorProfile: {
      screen: ViewActorProfileScreen,
      navigationOptions: () => ({
        title: 'View Profile',
        headerTintColor: 'rgb(234, 94, 32)', 
      })
    },
    ViewProducer :{
      screen: ViewProducerProfile,
      navigationOptions: () => ({
        title: 'View Profile',
        headerTintColor: 'rgb(234, 94, 32)', 
      })
    },
    ProjectView: {
      screen: ViewProject,
      navigationOptions: () => ({
        title: 'View Project',
        headerTintColor: 'rgb(234, 94, 32)', 
      })
    },
    AppliedProjectScreen: {
      screen: AppliedProjectUsers,
      navigationOptions: () => ({
        title: 'Applied Users',
        headerTintColor: 'rgb(234, 94, 32)', 
      })
    },
    ChattingScreen: {
      screen: Chat,
      navigationOptions: {
        title: 'Chat'
      }
    },
    ViewActorProfileScreen: {
      screen: ViewActorProfileScreen,
      navigationOptions: () => ({
        title: 'View Profile',
        headerTintColor: 'rgb(234, 94, 32)',
      })
    }
  },
  {
    initialRouteName: 'HomeStackScreen1',
    headerMode: 'screen'
  }
);

1 Ответ

0 голосов
/ 18 сентября 2018

Вы должны использовать точное имя домашнего маршрута в качестве параметра навигации:

navigation.navigate('HomeStackScreen1');

Если хотите, вы также можете переименовать HomeStackScreen1 в Home в вашем стеке навигации,

https://reactnavigation.org/docs/en/navigating.html

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