Передача параметра с экрана в SwitchNavigator на другой в TabNavigator - PullRequest
0 голосов
/ 03 марта 2019

У меня были некоторые проблемы при передаче параметров с экрана в switchNavigator на другой в TabNavigator

setvalue(response){
    this.setState({profile :response})
    
    console.warn(this.state.profile);
    this.state.navigate('Navigators',{profile: profile})
   
  }

Профиль содержит JSON-объект деталей профиля.Навигация отправляет дату на экран «Навигаторы», который является просто TabNavigator

const Navigators = createAppContainer(Userstack);

export default RootStack = createSwitchNavigator(
  {
    Home: {
      screen: Login
    },
    Register: {
      screen: Registration
    },
   Navigators: {
      screen: Navigators
    },
  },
  {
    initialRouteName: 'Home'
  }

);

Как создается TabNavigator.

export default Userstack = createBottomTabNavigator(
  {
    User: {
      screen: Profile
    },
    Discovery: {
      screen: DiscoveryNavigator
    },
  },
  {
      defaultNavigationOptions: ({ navigation }) => ({
        tabBarIcon: ({ tintColor }) => {
          const { routeName } = navigation.state;
          let IconComponent = Ionicons;
          let iconName;
          if (routeName === 'User') {
            iconName = `md-contact`;
            
            IconComponent = HomeIconWithBadge;
          } else if (routeName === 'Discovery') {
            iconName = `md-search`;
          }
          return <IconComponent name={iconName} size={27} color={tintColor} />;
        },
      }),
      tabBarOptions: {
        activeTintColor: '#00FA9A',
        inactiveTintColor: 'black',
      },
    }

);

Экран, к которому я хочу получить доступ к информации профиля:

export default class Profile extends Component {
  constructor(props){
    super(props);
    console.warn(props)
    this.State = {
      profile: this.props.navigation.params.profile
    }
    
  }

1 Ответ

0 голосов
/ 03 марта 2019

Вы пробовали this.props.navigation.state.params?

Согласно справке: https://reactnavigation.org/docs/params.html,

Вы также можете напрямую получить доступ к объекту params с помощью this.props.navigation.state.params,Это может быть нулевым, если параметры не были предоставлены, и поэтому обычно проще использовать getParam, чтобы вам не приходилось иметь дело с этим случаем.

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